TV-Headend Autoshutdown-Script: System fährt nicht runter!

  • Hallo zusammen,

    ich habe mich hier angemeldet in der Hoffnung Hilfe zubekommen:
    Ich habe seit einiger Zeit erfolgreich einen TV-Server (Ubuntu-Server16.04 mit TV-Headend) mit 2 Kodi-Clients bei mir am Laufen. Das System läuftaktuell 24/7, davon jedoch ca. 90% der Zeit ohne Nutzung. Jetzt bin ich imForum auf den Beitrag von „hackbird“ gestoßen (TutorialAutoSuspend/Standby TVHeadend unter OMV 3.X ohne AutoShutdown PLUGIN), mit dem derServer gezielt heruntergefahren wird, wenn ich ihn nicht brauche, undautomatisch startet, wenn eine Aufnahme geplant ist. Leider bekomme ich dasSkript jedoch nicht ans Laufen. Zugegebenermaßen bin ich noch relativunerfahren in der Ubuntu-Welt. Ich habe es jedoch geschafft alle Dateien an dierichtige Stelle auf meinem Ubuntu-System zu kopieren, die autosuspend Dateientsprechend mit meinen Benutzerdaten auszufüllen, einen cronjob für dieautosuspend.sh zu erstellen und die autosuspend.sh ausführbar zu machen. DasSystem will jedoch ums Verrecken nicht runterfahren!
    Kennt ihr eine Möglichkeit zu überprüfen bzw. einzusehen, anwelcher Stelle die autosuspend.sh einen Fehler ausspuckt oder den Befehl erhältdas System am Laufen zu lassen? Ich weiß zur Zeit nicht, wo ich anfangen soll mit der Fehlersuche.

    Vorab besten Dank für eure Hilfe!!!

    Gruß
    Tim

  • hi

    Wenn ich dich richtig verstehen, hast du einen reinen Ubuntu-Server und keinen OMV. Wahrscheinlich / Möglicher Weise funktioniert dann das Script nicht. Schau dir mal folgenden Thread an, insbesondere Beitrag 21, dort habe ich eine kleine Anleitung geschrieben. Bei @olli14 und mir funktioniert es bei ungefähr gleichen Voraussetzungen/Ansprüchen.

    Tschau nepo

  • Danke für die schnelle Antwort.
    Den angegebenen Thread habe ich gestern auch gefunden und rauf und runter probiert. Leider ohne Erfolg. Gibt es denn eine Möglichkeit einzusehen wie das Skript arbeitet, wenn es ausgeführt wird, und wo es dann hängt?

    Gruß
    Tim

  • Hi,
    der Parameter "Don't suspend by day" muß auf NO eingestellt sein, damit der PC in der Zeit von 8 Uhr morgens bis 3 Uhr nachts reagiert und runterfährt oder in suspend (je nach Konfiguration), also:
    DONT_SUSPEND_BY_DAY='no'

    Noch ein Hinweis: wie nepo geschrieben hat, wird in
    /var/[definition='1','0']log[/definition]/syslog
    Logdaten abgelegt. Sie mal in der syslog nach, ob dort einer dieser Logeinträge zu finden ist
    did not auto suspend because it is broad day
    NEITHER SUSPEND NOR RESUME ARE NOT SUPPORTED BY THIS SYSTEM
    do not suspend because would have been awaken within next 30 minutes
    auto suspend is turned off by existents of
    some users still connected, auto suspend terminated
    samba connected, auto suspend terminated

    Anhand dieser Logeinträge kann man erkennen, was ein herunterfahren verhindert.

  • Hallo,
    also ich habe vorhin den cronjob von 15 Minuten auf 1 Minute geändert und mir die syslog anzeigen lassen:

    Jan 20 18:54:01 TV-Server CRON[3309]: (root) CMD (root /usr/local/sbin/autosuspend.sh)
    Jan 20 18:54:01 TV-Server CRON[3308]: (CRON) info (No MTA installed, discarding output)

    Wenn ich autosuspend manuell ausführe:
    :/usr/local/sbin$ sudo autosuspend.sh

    dann bekomme ich in der syslog folgendes angezeigt:

    Jan 20 18:58:45 TV-Server autosuspend[3337]: some users still connected, auto suspend terminated
    Jan 20 18:58:45 TV-Server autosuspend[3339]: aborted

    Meine autosuspend Konfiguration sieht folgendermaßen aus:

    # Turn on auto suspend
    AUTO_SUSPEND='yes'


    # Suspend method: one of 'suspend', 'hibernate', 'hybrid-sleep', 'poweroff'
    SUSPEND_METHOD='poweroff'


    # Turning suspend by day (8 a.m. to 3 a.m.) off
    DONT_SUSPEND_BY_DAY='no'


    # Automatically reboot once a week when the system isn't in use
    REBOOT_ONCE_PER_WEEK='no'


    # Daemons that always have one process running, only if more that one process is active we prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    DAEMONS=''


    # Important applications that shall prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    APPLICATIONS='^nxagent$ ^rsnapshot$ ^wsus$ ^wget$ ^screen$ ^mlnetp$ ^apt-get$ ^aptitude$ ^dpkg$ ^cp$'


    # Network IP range for checking any open samba connections
    # The value is used with grep, so just a unique portion is sufficient
    SAMBANETWORK=''


    # Names or IP for computers that shall prevent the suspend
    # We ping these computers in the list to check whether they are active.
    CLIENTS=''


    #
    # Activation of Tvheadend support. If set to 'yes', Tvheadend status will be
    # used to determine if the machine is active. Default: yes
    TVHEADEND_ENABLED='yes'


    #
    # User for access to the Tvheadend REST API
    TVHEADEND_USER=TV1


    #
    # Password for access to the Tvheadend REST API
    TVHEADEND_PASSWORD=TV1


    #
    # IP for access to the Tvheadend REST API. Default: Autodetected from hostname
    TVHEADEND_IP=localhost


    #
    # TVheadend HTTP port. Default: 9981
    TVHEADEND_HTTP_PORT=9981


    #
    # TVheadend HTSP port. Default: 9982
    TVHEADEND_HTSP_PORT=9982


    #
    # Boot duration of the machine. Used to wake the machine timely before the next
    # recording. Default: 180 seconds
    TVHEADEND_BOOT_DELAY_SECONDS=180


    #
    # Autosuspension will be aborted if a recording is upcoming within the given
    # duration (unit: minutes). Default: 15 minutes
    TVHEADEND_IDLE_MINUTES_BEFORE_RECORDING=15


    #
    # Consider over-the-air EPG grabbing as an activity that prevents suspend?
    # If set to anything other than 'yes', and if the only activity is
    # over-the-air EPG grabbing, the machine will be suspended. Default: 'yes'
    TVHEADEND_CONSIDER_EPGGRABBING=no

  • Hi Tim2016
    ich nutze Linux Mint 19.2. Da bin ich als User "oliver" ständig im System angemeldet. Darum fuhr mein PC auch nie runter, sondern brachte immer diese Meldung
    "some users still connected, auto suspend terminated". Darum habe ich bei mir diese 4 Zeilen nachfolgenden Zeilen gelöscht.

    # Read logged users USERCOUNT=`who | wc -l`; # No Suspend if there are any users logged in test $USERCOUNT -gt 0 && { logit "some users still connected, auto suspend terminated"; return 1; }Du könnest diese 4 Zeilen zum Testen mal mit dem Zeichen "#" auskommentieren und testen, ob dein PC dann runterfährt. Also so:


    # Read logged users #USERCOUNT=`who | wc -l`; # No Suspend if there are any users logged in #test $USERCOUNT -gt 0 && { logit "some users still connected, auto suspend terminated"; return 1; }

  • Zitat


    Jan 20 18:54:01 TV-Server CRON[3309]: (root) CMD (root /usr/local/sbin/autosuspend.sh)
    Jan 20 18:54:01 TV-Server CRON[3308]: (CRON) info (No MTA installed, discarding output

    Das ist bedeutungslos, mal das ganze [definition='1','0']log[/definition] zeigen

    Zitat


    Wenn ich autosuspend manuell ausführe:
    :/usr/local/sbin$ sudo autosuspend.sh

    dann bekomme ich in der syslog folgendes angezeigt:

    Jan 20 18:58:45 TV-Server autosuspend[3337]: some users still connected, auto suspend terminated
    Jan 20 18:58:45 TV-Server autosuspend[3339]: aborted

    Ist logisch, da du es manuell startest, bist du auch eingelogged und dies ist eine Bedingung, um nicht herunter zu fahren.
    Die Frage ist, ist es ein Arbeitsrechner (mit Oberfläche) oder ein reiner Server ?
    Beim reinen Server jede Verbindung (z.B.ssh) beenden, beim Arbeitsrechner sich abmelden, desweiteren würde ich erst mal auch die "Applications" auskommentieren. Abwarten und wenn er dann runterfährt Super, falls nicht, das [definition='1','0']log[/definition] posten

    Tschau nepo

  • Erneut danke für eure ganzen Tipps!
    Es handelt sich um einen reinen Server, auf den ich per ssh von meinem Notebook aus zugreife. Ich habe jetzt die Applications auskommentiert, ssh beendet und wieder abgewartet. Leider bleibt der Server nach wie vor an. In der syslog-Datei ist nur der folgende nichtssagende Eintrag zu finden:

    Jan 20 21:50:01 TV-Server CRON[2185]: (root) CMD (root /usr/local/sbin/autosuspend.sh)
    Jan 20 21:50:01 TV-Server CRON[2184]: (CRON) info (No MTA installed, discarding output)

    Der vorige und nächste Eintrag in der syslog ist nur mein Abmelden bzw. Neuanmelden per ssh.

    Naja wie es aussieht wird mir wohl nicht viel übrig bleiben, als den Server weiterhin im 24/7 laufen zu lassen.....

  • Hallo nochmal,

    falls ich mein Problem nicht lösen kann, überlege ich am Wochenende evtl. nochmal mein System komplett frisch aufzusetzen. Vielleicht bekomme ich es dann hin. Aktuell nutze ich ja Ubuntu Server 16.04 und lass dort lediglich TVheadend laufen mit der Option irgendwann noch einen DLNA-Server zu aktivieren.

    1. Welche Vor- oder Nachteile bietet denn OMV im Vergleich zu Ubuntu Server? Ich weiß, dass OMV auf Debian basiert und eine Weboberfläche hat. Gibt es Gründe ein System zu bevorzugen?

    2. Aktuell habe ich natürlich einige TV-Aufnahmen mit TVheadend auf meiner Festplatte, die mir jetzt in Kodi schön unter Aufnahmen mit Aufnahmedatum und den zugehörigen EPG Daten angezeigt werden. Diese Daten werden ja nicht zusammen mit den Filmdateien im Aufnahmeverzeichnis auf der Festplatte gespeichert. Wenn ich jetzt das System neu aufsetze und lediglich die Filmdateien ins neue Aufnahmeverzeichnis kopiere, werden mir diese ja nicht mehr schön mit allen EPG Daten in Kodi angezeigt. Wisst ihr, wo TVheadend diese Infos zu den Aufnahmen speichert und ist es möglich diese 1:1 auf das neue System zu übertragen, damit in Kodi alles aussieht wie vorher?

  • hi


    Leider bleibt der Server nach wie vor an. In der syslog-Datei ist nur der folgende nichtssagende Eintrag zu finden:

    Allgemein: Immer das ganze [definition='1','0']log[/definition] zeigen, am besten "irgendwo" hochladen z.b. link oder so über Console link

    Nun zum eigentlichen Problem und ein paar Aufgaben für dich :D
    Zeige mal
    ls -lah /etc/autosuspend
    ls -lah /usr/local/sbin/autosuspend.sh
    cat /etc/crontab
    ls -lah /etc/crontab
    Des weiteren mach ein Foto von den User-Einstellungen von TVheadend (Web-Gui), so sieht es bei mir aus

    Sicherheitshalber kommentiere alles in autosuspend Datei aus, was du nicht brauchst wie z.B. DAEMONS=''

    Meine Config

    Spoiler anzeigen


    cat /etc/autosuspend
    # Turn on auto suspend
    AUTO_SUSPEND='yes'


    # Suspend method: one of 'suspend', 'hibernate', 'hybrid-sleep', 'poweroff'
    SUSPEND_METHOD='poweroff'


    # Turning suspend by day (8 a.m. to 3 a.m.) off
    #DONT_SUSPEND_BY_DAY='no'


    # Automatically reboot once a week when the system isn't in use
    #REBOOT_ONCE_PER_WEEK='yes'


    # Daemons that always have one process running, only if more that one process is active we prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #DAEMONS=''


    # Important applications that shall prevent the suspend
    # The values are used with grep, so just a unique portion is sufficient
    #APPLICATIONS='^nxagent$ ^rsnapshot$ ^wsus$ ^wget$ ^screen$ ^mlnetp$ ^apt-get$ ^aptitude$ ^dpkg$ ^cp$'
    APPLICATIONS='^WebGrab+Plus.exe$ ^mono'
    # Network IP range for checking any open samba connections
    # The value is used with grep, so just a unique portion is sufficient
    #SAMBANETWORK='192.168.1.'


    # Names or IP for computers that shall prevent the suspend
    # We ping these computers in the list to check whether they are active.
    CLIENTS='192.168.178.6 192.168.178.2 192.168.178.4 192.168.178.7'


    #
    # Activation of Tvheadend support. If set to 'yes', Tvheadend status will be
    # used to determine if the machine is active. Default: yes
    TVHEADEND_ENABLED='yes'


    #
    # User for access to the Tvheadend REST API
    TVHEADEND_USER=autosuspend


    #
    # Password for access to the Tvheadend REST API
    TVHEADEND_PASSWORD=autosuspend


    #
    # IP for access to the Tvheadend REST API. Default: Autodetected from hostname
    TVHEADEND_IP=localhost


    #
    # TVheadend HTTP port. Default: 9981
    #TVHEADEND_HTTP_PORT=9981


    #
    # TVheadend HTSP port. Default: 9982
    #TVHEADEND_HTSP_PORT=9982


    #
    # Boot duration of the machine. Used to wake the machine timely before the next
    # recording. Default: 180 seconds
    TVHEADEND_BOOT_DELAY_SECONDS=900


    #
    # Autosuspension will be aborted if a recording is upcoming within the given
    # duration (unit: minutes). Default: 15 minutes
    TVHEADEND_IDLE_MINUTES_BEFORE_RECORDING=60

    Und zum Abschluss: Sei dir sicher, daß nichts auf dem Server zugreift, wie z.B. ssh login, Web-Gui usw. und das kein Timer (in nächster Zeit) gesetzt ist.


    Muß jetzt zur Arbeit und kann wahrscheinlich frühestens morgen weiter machen.


    Tschau nepo

  • Ich habe gestern noch ein bisschen rumprobiert und siehe da, ich habe den Fehler gefunden (Unwissenheit der Anfänger)!!

    Cronjobs, die unter /etc/crontab eingetragen sind, werden von meinem System irgendwie nicht ausgeführt. Daher hatte ich die gesamte Zeile (*/15 * * * * root /usr/local/sbin/autosuspend.sh) in " sudo crontab -e " reinkopiert. Da funktionieren die Cronjobs bei mir prinzipiell. Jedoch wusste ich nicht, dass es dort notwendig ist die Benutzer rauszunehmen (neu: */15 * * * * /usr/local/sbin/autosuspend.sh). Und siehe da, das Skript wird ausgeführt und der Server geht in den shutdown!!! Jetzt wird auch in der log-Datei genau angezeigt, was das Skript macht und welcher Prozess ggf. den shutdown verhindert. :)

    Jetzt hätte ich abschließend noch 2 kleine Fragen zum Feinschliff:

    1. Ich beziehe meine EPG Daten OTA. In der Regel werden mir die nächsten 5-7 Tage angezeigt. Passt für mich soweit.
    Gedankenspiel: Ich bin im Urlaub und habe einen einzigen wöchentlichen Serientimer (alle Folgen einer bestimmten Serie aufnehmen) programmiert. Server fährt hoch --> nimmt die Episode auf --> kann keinen neuen Timer für die Folgewoche setzen, da EPG Daten noch nicht vorliegen --> fährt runter und wird von alleine auch nicht mehr starten ohne neuen Timer. Kann ich irgendwo einstellen, dass der Server einmal pro Tag hochfährt, sich die aktuellen EPG-Daten holt, ggf. einen Timer setzt und wieder schlafen geht? Werden die OTA-EPG Daten bei jedem Start automatisch aktualisiert? Wie lange braucht das System zur Aktualisierung?

    2. Leider habe ich noch folgendes Ping-Problem. Manueller Ping über Terminal vom TV-Server (ping 192.168.x.x):
    - TV-Server --> 2 unterschiedliche Windows Rechner = Antwort nein
    - TV-Server --> Raspberry mit Kodi = Antwort ja
    - NAS (gleiches Betriebssystem wie TV-Server) --> 2 unterschiedliche Windows Rechner = Antwort ja
    Komischerweise kann ich die beiden Windowsrechner nicht anpingen, von meinem NAS klappt es. Hat jemand eine Idee, woran das liegen könnte?


    Vorab Danke für eure Hilfe!

  • Moin
    Schön daß es jetzt funktioniert !

    Ich beziehe meine EPG Daten OTA. In der Regel werden mir die nächsten 5-7 Tage angezeigt. Passt für mich soweit.
    Gedankenspiel: Ich bin im Urlaub und habe einen einzigen wöchentlichen Serientimer (alle Folgen einer bestimmten Serie aufnehmen) programmiert. Server fährt hoch --> nimmt die Episode auf --> kann keinen neuen Timer für die Folgewoche setzen, da EPG Daten noch nicht vorliegen --> fährt runter und wird von alleine auch nicht mehr starten ohne neuen Timer. Kann ich irgendwo einstellen, dass der Server einmal pro Tag hochfährt, sich die aktuellen EPG-Daten holt, ggf. einen Timer setzt und wieder schlafen geht? Werden die OTA-EPG Daten bei jedem Start automatisch aktualisiert? Wie lange braucht das System zur Aktualisierung?

    ich sehe zwei Möglichkeiten:
    a) Du setzt per TVheadend einen Timer, der jeden Tag einmal ausgeführt wird, z.B. so

    b) Zweite Möglichkeit wäre es per autosuspend Script


    # Turning suspend by day (8 a.m. to 3 a.m.) off
    #DONT_SUSPEND_BY_DAY='no'

    Editieren und zusätzlich die passenden Zeiten Zeiten im ausführenden Script anpassen


    Wenn du über OTA dein EPG beziehst, dann ebenfalls folgendes im Script editieren

    Code
    # Consider over-the-air EPG grabbing as an activity that prevents suspend?
    # If set to anything other than 'yes', and if the only activity is
    # over-the-air EPG grabbing, the machine will be suspended. Default: 'yes'
    TVHEADEND_CONSIDER_EPGGRABBING=no

    Werden die OTA-EPG Daten bei jedem Start automatisch aktualisiert? Wie lange braucht das System zur Aktualisierung?

    Dies kann man in TVheadend unter Configuration einstellen, die Dauer hängt von mehreren Faktoren ab, z.B. Anzahl der Sender, Anzahl der Tage

    Tschau nepo

  • Statt einen Timer in TVHeadend zu setzen, der täglich den PC weckt, kann man doch auch folgendes machen: bei mir gibt es unter /etc/autosuspend.d einen Ordner "activities". In diesem Ordner habe ich eine Datei abgelegt (ich habe sie "aufwecken" genannt). In dieser Datei kann ich nun Zeiten eingeben, zu denen mein PC geweckt werden soll. Wird der PC dann geweckt, aktualisiert der doch automatisch auch den EPG, oder?

  • Wird der PC dann geweckt, aktualisiert der doch automatisch auch den EPG, oder?

    Wenn man es in der Configuration bei Tvheadend eingetragen hat.

    Statt einen Timer in TVHeadend zu setzen, der täglich den PC weckt, kann man doch auch folgendes machen: bei mir gibt es unter /etc/autosuspend.d einen Ordner "activities". In diesem Ordner habe ich eine Datei abgelegt (ich habe sie "aufwecken" genannt). In dieser Datei kann ich nun Zeiten eingeben, zu denen mein PC geweckt werden soll. Wird der PC dann geweckt, aktualisiert der doch automatisch auch den EPG, oder?

    Es wäre nett, wenn du diese Datei hier mal postest, es haben vielleicht noch andere daran Interesse

Jetzt mitmachen!

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