TVheadend mit höherer Priorität starten

  • Hi

    Ich möchte meinen TVheadend-Server mit einer höheren Priorität starten, wobei ich den Server weiterhin als "Dienst" beibehalten/starten möchte. Somit fält ein cronjob oder rc-local mit z.B.

    Code
    nice -n -5 tvheadend ....

    aus.

    Wahrscheinlich muß man entweder /etc/init.d/tvheadend und/oderr /etc/init/tvheadend.conf editieren , aber wie oder gibt es noch andere Möglichkeiten ?

    Tschau nepo

  • hi

    Auf meinem Ubuntu Server nutzt TVHeadend noch ein init.d Script.

    Bei mir auch, glaube ich. Zumindest sind die conf Dateien im inii.d und init Ordner.

    Darin kannst du bestimmt die DAEMON Zeile abändern um den nice Befehl zu integrieren.

    genau da liegt mein Problem ;) ?( .Ich gehe mal davon aus, daß du folgendes Script meinst:

    Spoiler anzeigen


    cat /etc/init.d/tvheadend
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides: tvheadend
    # Required-Start: $local_fs $remote_fs udev
    # Required-Stop: $local_fs $remote_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    ### END INIT INFO


    # Author: Andreas Öman


    # Do NOT "set -e"


    # PATH should only include /usr/* if it runs after the mountnfs.sh script
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    DESC="Tvheadend"
    NAME=tvheadend
    DAEMON=/usr/bin/$NAME
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME


    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0


    # Read configuration variable file if it is present
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME


    # Configure command line options
    [ "$TVH_ENABLED" = "1" ] || exit 0


    ARGS="-f"
    [ -z "$TVH_USER" ] || ARGS="$ARGS -u $TVH_USER"
    [ -z "$TVH_GROUP" ] || ARGS="$ARGS -g $TVH_GROUP"
    [ -z "$TVH_CONF_DIR" ] || ARGS="$ARGS -c $TVH_CONF_DIR"
    [ -z "$TVH_ADAPTERS" ] || ARGS="$ARGS -a $TVH_ADAPTERS"
    [ "$TVH_IPV6" = "1" ] && ARGS="$ARGS -6"
    [ -z "$TVH_HTTP_PORT" ] || ARGS="$ARGS --http_port $TVH_HTTP_PORT"
    [ -z "$TVH_HTTP_ROOT" ] || ARGS="$ARGS --http_root $TVH_HTTP_ROOT"
    [ -z "$TVH_HTSP_PORT" ] || ARGS="$ARGS --htsp_port $TVH_HTSP_PORT"
    [ -z "$TVH_ARGS" ] || ARGS="$ARGS $TVH_ARGS"
    [ "$TVH_DEBUG" = "1" ] && ARGS="$ARGS -s"


    # Load the VERBOSE setting and other rcS variables
    [ -f /etc/default/rcS ] && . /etc/default/rcS


    # Define LSB log_* functions.
    # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
    . /lib/lsb/init-functions


    #
    # Function that starts the daemon/service
    #
    do_start()
    {
    # Return
    # 0 if daemon has been started
    # 1 if daemon was already running
    # 2 if daemon could not be started
    udevadm settle
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
    || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
    $ARGS \
    || return 2
    }


    #
    # Function that stops the daemon/service
    #
    do_stop()
    {
    # Return
    # 0 if daemon has been stopped
    # 1 if daemon was already stopped
    # 2 if daemon could not be stopped
    # other if a failure occurred
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    # Many daemons don't delete their pidfiles when they exit.
    rm -f $PIDFILE
    return "$RETVAL"
    }


    case "$1" in
    start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
    stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
    restart|force-reload)
    #
    # If the "reload" option is implemented then remove the
    # 'force-reload' alias
    #
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
    0|1)
    do_start
    case "$?" in
    0) log_end_msg 0 ;;
    1) log_end_msg 1 ;; # Old process is still running
    *) log_end_msg 1 ;; # Failed to start
    esac
    ;;
    *)
    # Failed to stop
    log_end_msg 1
    ;;
    esac
    ;;
    status)
    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
    ;;
    *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 3
    ;;
    esac


    :


    Wo und wie muß/kann ich etwas ändern ?

  • Ich würde versuchen folgende Zeile zu ändern:
    DAEMON=/usr/bin/$NAME
    in
    DAEMON=/usr/bin/nice -n -10 $NAME

    Ob das wirklich so funktioniert kann ich aber nicht garantieren.

    Ganz davon abgesehen, warum willste das überhaupt machen? Zum Testen könntest du auch einfach den Befehl renice verwenden.

  • hi

    erst mal Danke für deine Hilfe.

    DAEMON=/usr/bin/nice -n -10 $NAME

    Leider hat das nichts gebracht (Auszug aus /etc/init.d/tvheadend

    Bash
    # PATH should only include /usr/* if it runs after the mountnfs.sh script
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    DESC="Tvheadend"
    NAME=tvheadend
    DAEMON=/usr/bin/nice -n -5 $NAME
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME


    Schade!

  • hi

    Tschuldigung, daß ich mich erst jetzt wieder melde - arbeite momentan an mehreren Baustellen.

    Aber ich habe eine Lösung für mein Problem link (und schon wieder drei Stunden meines Lebens weg) :wacko:

    1. /etc/init.d/tvheadend editieren

    2. sudo systemctl daemon-reload
    3. sudo service tvheadend restart



    Frage für mich bleibt aber warum du das überhaupt machen möchtest.

    Wie man auch am Bild erkennen kann, habe ich prinzipiell kein Problem mit der Auslastung des Systems. Der Server wird aber nicht nur als TV-Server genutzt (z.B. NFS) und gefühlt ist es so, daß bei gleichzeitiger Nutzung andere Dienste/Programme (kurzfristig) Fehler sowohl beim Streaming als auch bei Aufnahmen entstehen. Ich möchte testen, ob es daran liegt. Schaden werde ich dem System damit nicht.

    Tschau nepo!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!