Danke erstmal, das gucke ich mir heute abend mal an.
Das Ziel ist folgendes:
1. Hochfahren, VDR starten
2. Schauen, ob X initialisiert wurde (z.B. durch prüfen, ob der Failsafe-X-Server läuft)
3. Wenn ja, gehe zu 9.
4. Failsafe-X killen
5. 20 Sekunden warten
6. Versuchen, den gdm neuzustarten
7. 5 Sekunden warten
8. Gehe zu 2
Läuft die Kiste so, dann wird sie nach 60 Minuten ausgeschaltet, wenn nichts zu tun ist (Transcoding, Aufnahme, noad, SSH oder Streamdev-Verbindung offen...). Schalte ich zwischenzeitlich den AV-Receiver und Beamer an, komme ich irgendwann im Schritt 3 hierhin:
9. Einen Frontend-User verzögert mit GDM einloggen (so dass ich Zeit habe, mich für Admin-Zwecke selbst einzuloggen)
10. Frontend-User startet keine Panels, sondern nur vdr-sxfe und startet das immer wieder neu, wenn man es versehentlich beendet
Und hier soll dann die 60-Minuten-Ausschaltregelung unterbrochen werden. Das geht auch in den Shutdown-Hooks, indem ich einfach "TRY_AGAIN=5" ausgebe, wenn "pidof vdr-sxfe |wc -l" einen Wert >0 zurück gibt.
Mache ich dann aber HITK power, poweroffvdr oder schalte ihn übers Frontend aus, dann soll zuerst "killall vdr-sxfe" ausgeführt werden.
Das könnte ich dann über das Argument 5 auswerten.
EDIT: Wenn das Skript selbst HITK power macht, ist das egal, denn das macht ja erst HITK power, wenn die Shutdown-Hooks durch sind und keiner Returncode 1 oder "TRY_AGAIN=wert" geliefert hat. Da kann ich vor dem ausführen der Hooks ja schon "killall vdr-sxfe" machen. Dann ist eben noch der Gnome-Desktop des Frontend-Users da. Da kann ich ja z.B. mit Zenity einen Dialog ausgeben wie "Rechner fährt runter, sobald nichts mehr zu tun ist".
Das VDR-Shutdown-Skript ist "vdr-shutdown", das über das Binary-Programm "vdr-shutdown.wrapper" aufgerufen wird, richtig?