Sauberes Shutdown-Skript ohne nervige OSD-Messages mit Comand und Login/Samba-Test

  • Hallo,


    ich hatte mir ja schon das Shutdown-Skript soweit erweitert, dass es auch abfragt, ob noch Benutzer eingeloggt sind, und ggf in X Minuten wieder versucht. Weil der erneute Versuch aber ueber "$vdrpsend HITK POWER" lief hatte ich immer die haessliche Meldung im OSD und Wiedergaben wurden abgebrochen.
    Ich hab jetzt das Skript so umgebaut, das zuerst abgefragt wird, ob ueberhaupt runtergefahren werden kann - und nur fuer den Fall das es o.k. ist "$vdrpsend HITK POWER" abgeschickt wird.


    Das ganze setzt sich zusammen aus einem Script "/usr/local/scripts/shutdown_check.pl", das checkt, ob Benutzer und Prozesse aktiv sind, die den Shutdown verhindern und die Minuten zurueckgeben, in denen das Skript es selbst erneut testet (ruft sich selbst wieder auf).


    EDIT aktuelles Script s.u. /EDIT


    Wenn der Shutdown stattfinden kann, drueckt das Skript die POWER-Taste und das normale Shutdown-Skript wird gestartet. Hieraus habe ich die Prozess-Abfrage entfernt. Das normale Shutdown-Script ruft erneut das obige Script auf (ist ein bisschen unsauber, muss aber sein, weil der Shutdown ja auch erstmals ausgefuehrt werden kann) und gibt schliesslich das eigentliche Shutdown-Kommando:


    EDIT aktuelles Script s.u. /EDIT


    Um aus dem Terminal einen sauberen Shutdown zu ermoeglichen werden Aliasse in die .bashrc geschrieben:


    Code
    # use shutdownscript instead. shutdownallowed needed to allow shutdown although ssh-logins active
    alias shutdown='echo "YES">/tmp/shutdownallowed && /usr/lib/vdrdevel/svdrpsend.pl HITK Power #'
    #in case of emergency:
    alias restart='sudo /sbin/shutdown -r now'
    alias shutdownforce='sudo /sbin/shutdown -h now'


    Da normalerweise kein Shutdown moeglich ist, wenn nur SSH-Logins offen sind wird hier noch ein File beschrieben, was dem o.g. Script hierzu das o.k. gibt.



    Vielleicht kann das ja wer gebrauchen, laeuft bei mir (endlich) tadellos...


    Hannes


    EDIT:
    Anbei die aktuellsten Versionen. Jetzt kann man auch die Zeitspanne waehlen, in der es wieder versucht werden soll und OSD-Messages aktivieren / deaktivieren.





    Anbei meine aktuelle /usr/lib/vdrdevel/vdrdevel-shutdown



    Und das andere Script: (/usr/local/scripts/shutdown_check.pl ) unten nochmal als Download


    EDIT:
    Jetzt mit Test, ob SMB-Datei-Aktivitäten vorhanden sind. Dann koennt Ihr ggf. den Verbindungscheck ausschalten.


    /EDIT

  • Welche .bashrc meinst du?
    Habe es in die.bashrc in /etc/skel/ eingefügt, aber jetzt geht er gar nicht mehr aus (weder per User-Inaktivität, noch per Befehl im Menü, nur noch per Linux runterfahren oder halt nen SSH-Befehl)! Er geht aber immerhin auch bei bestehender SSH Verbindung nicht aus....


    Und mit der Shutdown-Datei meinst du /usr/lib/vdrdevel/vdrdevel-shutdown ?


    Achso ich benutze NVRAm-Wakeup.


    Welches File wird noch beschrieben?

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

    Edited 4 times, last by SurfaceCleanerZ ().

  • wär cool, wenn du ne schritt für schritt anleitung posten könntest!

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

  • Hallo,


    ich setzt mich die Tage mal dran, ist aber viel los gerade...
    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Sehr genial!
    Bin wie oben beschrieben leider dran gescheitert und habs dann wieder rückgängig gemacht!!!

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Hallo,


    so, ich habs nochmal zusammengetragen.


    Als erstes muesst Ihr wissen, wo Euer shutdown-Script des VDR liegt.
    Das seht ihr, wenn Ihr die VDR-Startoptionen anguckt, z.B. in "/etc/init.d/vdr". Bei mir ist es
    in /usr/lib/vdrdevel/vdrdevel-shutdown , kann aber auch z.B. /usr/bin/vdrshutdown heissen oder so.


    So. Erstmal die vorhandene Datei kopieren.
    #> cp /usr/lib/vdrdevel/vdrdevel-shutdown /usr/lib/vdrdevel/vdrdevel-shutdown.old


    Dann entsprechend bearbeiten:
    #> pico /usr/lib/vdrdevel/vdrdevel-shutdown


    EDIT: aktuelles Script siehe erstes Posting /EDIT


    Wichtig ist, dass unten an Stelle eines Shutdown das perl-Script aufgerufen wird:
    if [ $TRY_AGAIN -gt 0 ]
    then
    $log "$shutdownhook requests to try again in $TRY_AGAIN minutes"
    echo "perl $shutdowntest" | at now + $TRY_AGAIN minutes
    osdmsg "Shutdown aborted. Retry in $TRY_AGAIN minutes." &
    exit 0
    fi


    und nicht von selbst der Shutdown eingeleitet wird. Evtl. Prozesschecks, die in dem Script schon vorhanden sind wuerde ich ebenfalls entfernen. Das obige Beispiel ist natuerlich für den ct-vdr, ein bischen Transferwissen ist fuer andere Distries sicherlich noetig. Eingebunden wird die /usr/lib/vdrdevel/config-loader.sh - an der muss nix veraendert werden - wer aber fuer eine andere Distri wissen will, welchen Wert die genannten Variablen haben, fuer den ist das sicherlich interessant.




    So. Jetzt zum eigentlichen Teil. Wir brauchen ein Perl-Script, dass checkt, ob noch Leute eingeloggt sind usw. Das ist dieses hier:


    #> more /usr/local/scripts/shutdown_check.pl


    EDIT: aktuelles Script siehe erstes Posting /EDIT


    So. jetzt hab ich nur noch der Faulheit wegen, und weil ich den Rechner auch aus der Konsole ausstellen koennen will in jede .bashrc der User (also /home/$username/.bashrc - bzw. .profile je nach benutzter shell) eingefuegt:


    Code
    alias shutdown='echo "YES">/tmp/shutdownallowed && /usr/lib/vdrdevel/svdrpsend.pl HITK Power #'
    alias restart='/sbin/shutdown -r now'
    alias shutdownforce='/sbin/shutdown -h now'



    Natuerlich muessen alle Scripte ausfuehrbar sein usw.


    Ich weiss nicht, ob ich Euch damit schon weiterhelfen konnte, bei Fragen - nur zu!



    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

    Edited 3 times, last by hannsens ().

  • Quote

    Original von SurfaceCleanerZ
    Welche .bashrc meinst du?


    Ich habe jeweils in jede .bashrc der User die Zeilen eingefuegt, die aus der Konsole heraus einen shutdown durchfuehren duerfen.


    Quote


    Habe es in die.bashrc in /etc/skel/ eingefügt, aber jetzt geht er gar nicht mehr aus (weder per User-Inaktivität, noch per Befehl im Menü, nur noch per Linux runterfahren oder halt nen SSH-Befehl)! Er geht aber immerhin auch bei bestehender SSH Verbindung nicht aus....


    Bei bestehender SSH-Verbindung _soll_ er ja auch gar nichtmehr ausgehen. Das ist ja der Clou. Er kontrolliert jedoch dann alle 5 Minuten, ob noch eine Verbindung besteht und geht dann ggf. aus. Zwei Punkte vielleicht noch zur erklaerung:


    - Wenn Du normal per "shutdown -h now" den Rechner stoppst schreibt er die Aufwachzeit nicht an die betreffende Stelle - deswegen wurde dieser Befehl per ALIAS in der .bashrc durch den VDR-shutdown ersetzt.


    - Nachdem er bei einer bestehenden SSH-Verbindung nicht runterfaehrt ist es eigentlich unmoeglich, ihn per Konsole auszustellen. Das das trotzdem geht gibt es ein kleines Gimmik: Wird der shutdown-Befehl von der Konsole aus abgegeben, schreibt er ein kleines File in /tmp. Der Shutdown-Check testet, ob so ein File vorhanden ist und ignoriert in diesem Fall offene SSH-Verbindungen.


    Quote


    Und mit der Shutdown-Datei meinst du /usr/lib/vdrdevel/vdrdevel-shutdown ?


    Wenn Du ctvdr 1.3 benutzt: ja.


    Quote


    Achso ich benutze NVRAm-Wakeup.


    Ich ACPI. Dass sollte aber keinen Unterschied machen.


    Quote


    Welches File wird noch beschrieben?


    nur noch das /tmp-File. Ich habe mir noch ein shutdown-Hook gebastelt, was die nächste Aufwachzeit an meinen E-Mailaccount mailt - die wird dann auch noch in /tmp geschrieben. Aber sonst nix.


    Hannes


    PS: Mach mal'n Backup von den Dateien. Ein apt-get upgrade ueberschreibt ggf. die ganzen schoenen Veraenderungen (war bei mir so).


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • So ich hab das ganze mal gebastelt folgende Fragen:


    1

    Code
    System beschäftigt

    kommt wenn noch ne Aufnahme läuft??
    2 Wenn ich ausschalten will passiert folgendes:


    Aufnahme in x minuten trotzdem ausscahlten? => okay
    Wirklichrunterfahren => ich drück keine Taste
    ==> jetzt wird der Bildschirm kurz schwarz, dann ist wieder Bild da und der VDR fährt net runter!


    3. Wenn ich ausschalten will und dein script verhindert das, krieg ich dann ne Meldung ans OSD?

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

    Edited once, last by M.Temp ().

  • Quote

    Original von Blabla
    1

    Code
    System beschäftigt

    kommt wenn noch ne Aufnahme läuft??


    Das kommt als Meldung im OSD? Hmmm, das stammt nicht von mir - muss von Deinem VDR-Shutdown-Script kommen. Welchen VDR nutzt Du (selbst kompiliert / eTobi o.ae.)?


    Quote


    2 Wenn ich ausschalten will passiert folgendes:


    Aufnahme in x minuten trotzdem ausscahlten? => okay
    Wirklichrunterfahren => ich drück keine Taste
    ==> jetzt wird der Bildschirm kurz schwarz, dann ist wieder Bild da und der VDR fährt net runter!


    Hmmm. Keine Ahnung, was er macht. Poste doch mal das Log (tail -f /var/log/messages laufen lassen, waehrend Du versuchst runterzufahren).


    Da sollte sich etwas in der Art finden:

    Quote

    Jan 4 17:52:47 mediaserver shutdown-check: Still active: SSH (root root ) SMB (hannes ) Shutdown-Retry in 5 min


    Was Dir sagt, weshalb der Shutdown verhindert wurde.


    Ggf. probier mal aus, ob DU das Shutdownscript alleine starten kannst, also per
    #> perl /usr/local/scripts/shutdown_check.pl


    Es gibt eine Zahl zurueck (so lange, wie der Shutdown erstmal auf Eis gelegt werden soll), und im Log die Gruende warum.


    Quote


    3. Wenn ich ausschalten will und dein script verhindert das, krieg ich dann ne Meldung ans OSD?


    Ne, das hab ich rausgeschmissen. Nachdem er aber die Powertaste immer fuenf Minuten spaeter drueckt, um zu versuchen, obs denn jetzt klappt, bekommst Du ggf. dann auf's OSD, dass er jetzt runterfaehrt.


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Quote

    Original von hannsens


    Das kommt als Meldung im OSD? Hmmm, das stammt nicht von mir - muss von Deinem VDR-Shutdown-Script kommen. Welchen VDR nutzt Du (selbst kompiliert / eTobi o.ae.)?


    wird wohl so sein VDR siehe sig. selbst kompiliert


    Quote

    Hmmm. Keine Ahnung, was er macht. Poste doch mal das Log (tail -f /var/log/messages laufen lassen, waehrend Du versuchst runterzufahren).


    Da sollte sich etwas in der Art finden:


    Was Dir sagt, weshalb der Shutdown verhindert wurde.


    ah gut, das kommt bei mir schon mal nicht werd da mal weiter suchen


    Quote


    Ggf. probier mal aus, ob DU das Shutdownscript alleine starten kannst, also per
    #> perl /usr/local/scripts/shutdown_check.pl


    Es gibt eine Zahl zurueck (so lange, wie der Shutdown erstmal auf Eis gelegt werden soll), und im Log die Gruende warum.


    ah das geht!
    Zahl= 5
    log:


    vdr shutdown-check: Proc (noadtranscodevcdimagermencodertosvcdlametcmplexmvpes2aud_estar) Shutdown-Retry in 5 min


    bitte was? noad sollte ncht laufen! Kann es sein, dass der Life-Buffer-Patch da was macht??


    Quote

    Ne, das hab ich rausgeschmissen. Nachdem er aber die Powertaste immer fuenf Minuten spaeter drueckt, um zu versuchen, obs denn jetzt klappt, bekommst Du ggf. dann auf's OSD, dass er jetzt runterfaehrt.
    Hannes


    hmm könnte man das nciht einbauen?
    Am besten so:
    Es sind noch SSH-Sitzungen offen - wirklcih ausschalten?
    Es sind noch samba-Sitzungen odden - wirklich ausschalten?
    oder zumindest, dass ers in 5 min wieder probiert?


    Naja für mich schuat, das so aus, als ob der das perls script gar net ausführt!

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

  • Quote

    Original von Blabla


    ah gut, das kommt bei mir schon mal nicht werd da mal weiter suchen


    Da - siehste - ich hab nochmal meine Version mit der hier abgeglichen - in der vdrshutdown ist schonmal ein "fi" and er falschen stelle... die korregierte Funktion anbei (s.u.)

    Quote


    Zahl= 5
    log:


    vdr shutdown-check: Proc (noadtranscodevcdimagermencodertosvcdlametcmplexmvpes2aud_estar) Shutdown-Retry in 5 min


    Wow. Das laeuft alles bei Dir? Hmmm. da scheint mir auch was faul zu sein...

    Quote


    bitte was? noad sollte ncht laufen! Kann es sein, dass der Life-Buffer-Patch da was macht??


    Ich hab mal die Ansicht der Prozesse etwas verschoenert - kann man ja kaum lesen...


    Du kannst mit "pgrep" die PIDs der einzelnen Prozesse anzeigen, sollte z.B. bei "pgrep noad" keine Antwort kommen, das Script aber melden, der Prozess ist aktiv, dann ist was faul...

    Quote

    hmm könnte man das nciht einbauen?
    Am besten so:
    Es sind noch SSH-Sitzungen offen - wirklcih ausschalten?
    Es sind noch samba-Sitzungen odden - wirklich ausschalten?
    oder zumindest, dass ers in 5 min wieder probiert?


    Ich hab ne OSD Meldung eingebaut, weswegen er nicht runterfaehrt (nur SSH, SMB & Proc, sonst wird die wahrscheinlich zu lang).


    Eine Abfrage, ob er das wirklich soll gibt nicht (muesste man VDR patchen), aber es kommt ja ohnehin die Meldung, "Taste druecken um shutdown abzubrechen".


    Quote

    Naja für mich schuat, das so aus, als ob der das perls script gar net ausführt!


    liegt vielleicht auch an den Benutzerrechten. Uebernehme doch mal die beiden u.a. Scripte und setze die Rechte auf ausfuehrbar:


    chmod ugo+x /usr/lib/vdrdevel/vdrdevel-shutdown
    chmod ugo+x /usr/local/scripts/shutdown_check.pl





    Viel Glueck und vielen Dank fuers leidensfaehige Testen ;)



    Hannes



    EDIT:


    ich hab mal die aktuellste Fassung des script hier ins erste Posting kopiert - ist glaub ich am uebersichtlichsten. Sonst muss man immer die neuste Version ewig suchen...


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

    Edited 2 times, last by hannsens ().

  • okay ohne das "fi" kommt schonmal


    Code
    Jan  5 13:10:50 vdr vdr[2480]: Power button pressed
    Jan  5 13:10:50 vdr vdr[2480]: next timer event at Thu Jan  5 16:09:00 2006
    Jan  5 13:10:50 vdr vdr[2480]: confirm: Taste drücken um Shutdown abzubrechen
    Jan  5 13:10:50 vdr vdr[2480]: warning: Taste drücken um Shutdown abzubrechen
    Jan  5 13:10:51 vdr vdr[2480]: NotifyBeep plugin: Can't write to /dev/tty0 : (11)
    Jan  5 13:10:57 vdr vdr[2480]: confirmed
    Jan  5 13:10:57 vdr vdr[2480]: non blocking file reader thread ended (pid=2480, tid=-1312818256)
    Jan  5 13:10:57 vdr vdr[2480]: dvbplayer thread ended (pid=2480, tid=-1296041040)
    Jan  5 13:10:57 vdr vdr[2480]: executing '/usr/local/bin/vdrshutdown 1136473740 10683 11 "J.A.G. - Im Auftrag der Ehre~ " 1'
    Jan  5 13:10:58 vdr shutdown-check: Proc (noadtranscodevcdimagermencodertosvcdlametcmplexmvpes2aud_estar)  Shutdown-Retry in 10 min


    werd nachert gleich mal weiter testen
    edit: wo sollte ich am besten

    Code
    /usr/sbin/set_timer $1 $2


    einbauen?


    ich kreig immer noch
    shutdown-check: Proc (noadtranscodevcdimagermencodertosvcdlametcmplexmvpes2aud_estar)


    und noad läuft def. NICHT!
    Schuss ins Blaue: in meinen shutdown-hooks ist ein noadscript drinnen




    werd dann mal weiter probieren



    /EDIT2:


    also es scheint soweit zugehen, nur meint dein Script, dass so gut wie alle Prozesse noch laufen!


    Code
    r shutdown-check: Shutdown forced by User, so Login/SSH-Sessions will be ignored
    Jan  5 13:51:46 vdr shutdown-check: Still active: processes (noad, transcode, vcdimager, mencoder, tosvcd, lame, tcmplex, mv, pes2aud_es, tar)  Shutdown-Retry in 6 min


    aber die Prozesse laufen NICHT!




    und noch ein Problem hab ich - dafür kannst du aber nix!
    Wie log ich mich unter windoof als SambaBenutzer wieder aus??


    und noch ne Frage:
    Macht es deinem Script was aus, wenn unter debian eine Windoof Freigabe (ro) noch gemountet ist?


    Sonst: Sehr gute Arbeit *lob*

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

    Edited 4 times, last by M.Temp ().

  • Hab mirs gerade durchgelesen und dabei gefunden, dass es bei mir wahrscheinlich auch an der bestehenden automatisch gemounteten Win SMB-Verb. lag. Der Retry tauchte im log auf! Gibt es auch eine Möglichkeit das SMB-Skript dementsprechend anzupassen, dass er prüft, ob SMB was überträgt? Weil Win die Verb. ja hält!


    Der Restart über SSH mit "Reboot" ging und "Poweroff" mein ich auch.


    Das "fi" hatte ich wohl auch falsch und "skel" war ja anscheinend auch das falsche .bashrc. Naja werde es nochmal testen.


    Kannst ja mal deine Meinung zur evtl. SMB-Änderung anmerken! Oder kann man die SMB-Abfrage einfach weglassen? Ist aber die schlechtere Variante....


    Ich nutze übrigens die VDR4 mit VDR3 Kernel aus Satproblemen heraus (2.4.27-Ct2 heisst der glaub ich)

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Quote

    Original von SurfaceCleanerZ
    Hab mirs gerade durchgelesen und dabei gefunden, dass es bei mir wahrscheinlich auch an der bestehenden automatisch gemounteten Win SMB-Verb. lag. Der Retry tauchte im log auf! Gibt es auch eine Möglichkeit das SMB-Skript dementsprechend anzupassen, dass er prüft, ob SMB was überträgt? Weil Win die Verb. ja hält!


    Achso. Hmmm. Ich nutze Samba v.a. für MacOSX und habe - pardon - keine Ahnung, wie dass am PC laeuft...


    Du kannst natuerlich diesen Absatz rauskommentieren (langen wuerde allerdings schon die Zeile "$logins++;" um den Samba-Check unnütz zu machen.


    Ich hatte schon ein paar mal danach gegoogled, wie man Dateizugriffe von aussen feststellen kann, hatte aber nichts befriedigendes gefunden. Aber vielleicht findet Ihr ja was, bin selbst doch leider Vollamateut unter Linux...


    Diese Zeilen sind fuer den SMB-Teil zustaendig:


    Quote


    Der Restart über SSH mit "Reboot" ging und "Poweroff" mein ich auch.


    Klingt doch gut. Wenn er jetzt auch nach "MinUserInactivity" die Du im VDR eingestellt hast runterfaehrt, aber nicht, wenn SSH-Sessions offen sind oder die vorgegebenen Prozesse laufen, dann ist alles in Butter...


    Quote


    Das "fi" hatte ich wohl auch falsch und "skel" war ja anscheinend auch das falsche .bashrc. Naja werde es nochmal testen.


    Naja, das "fi" hab ich ja falsch gemacht. "skel" sind quasi die Templates fuer alle neu einzurichtenden User, aber betrifft IMO nicht die aktuellen User.


    Quote


    Kannst ja mal deine Meinung zur evtl. SMB-Änderung anmerken! Oder kann man die SMB-Abfrage einfach weglassen? Ist aber die schlechtere Variante....


    SMB-Abfrage find ich gut - auch gerne Abfragen, ob AppleTalk, NFS, FTP usw. Transfers laufen - ich brauch mehr fuer mich nur nicht und faende es Klasse, wenn jemand, der sowas tatsaechlich nutzen wuerde mal n Befehl/Skript/wie auch immer postet, mit dem man das rausbekommt...


    Quote


    Ich nutze übrigens die VDR4 mit VDR3 Kernel aus Satproblemen heraus (2.4.27-Ct2 heisst der glaub ich)


    2.4.27. dto. Allerdings wg. Problemen mit meiner DVB-T Karte (hab jetzt wieder den 1.0.1-6er DVB-Treiber).


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Quote

    Original von Blabla
    edit: wo sollte ich am besten

    Code
    /usr/sbin/set_timer $1 $2


    einbauen?


    Ich wuerde dass in ein shutdown-hook einbauen, wie bei NVRAM-Wakeup oder ACPI-Wakeup. Wo steht es denn jetzt?


    Quote

    Schuss ins Blaue: in meinen shutdown-hooks ist ein noadscript drinnen


    Das ist im Zweifel doppeltgemoppelt, aber nicht weiter schlimm. Dir Ursache fuer den Fehler kann das nicht sein.




    Quote
    Code
    r shutdown-check: Shutdown forced by User, so Login/SSH-Sessions will be ignored
    Jan  5 13:51:46 vdr shutdown-check: Still active: processes (noad, transcode, vcdimager, mencoder, tosvcd, lame, tcmplex, mv, pes2aud_es, tar)  Shutdown-Retry in 6 min


    aber die Prozesse laufen NICHT!



    Offensichtlich liefert bei Dir

    Code
    my $pid=qx{pidof $_ 2>&1};


    Falsche Werte. Probier doch mal die eine Zeile einzufuege, um zu loggen, welche PID (oder Fehlermeldung) er erhält:


    Code
    my $pid=qx{pidof $_ 2>&1};
    # NEU:
    $response.=qx{$log "Process $_ with PID $pid still active"};
    # /NEU
                    if ($pid ne "") {


    Quote


    und noch ein Problem hab ich - dafür kannst du aber nix!
    Wie log ich mich unter windoof als SambaBenutzer wieder aus??


    Hmmm. tut mir leid, kann ich Dir nicht sagen, ich nutze Samba unter MacOSX...


    Quote

    Macht es deinem Script was aus, wenn unter debian eine Windoof Freigabe (ro) noch gemountet ist?


    Stimmt - eine "ro" Abfrage wuerde sinn machen - aber ob sowas geht und wie weiss ich jetzt nicht...


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Nochmal zur SMB-Problematik: Interessant ist nicht nur, ob es offene Verbindungen gibt (was ja jetzt abgefragt wird) oder ob es Schreibvorgaenge gibt (was man ueber "smbstatus -L | grep RDWR" abfragen koennte), sondern auch, ob Dateien gelocked sind - also fuer andere nur readonly zu oeffnen - weil man diese evtl. selbst beschreiben will. Das bekaeme man mit


    smbstatus -L


    heraus. Koennt Ihr das mal in der Konsole mit einer Win-Verbindung testen?


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Wenn man keine Verknüpfungen zum SMB Laufwerk in Win einrichtet, müsste man "Verb. mit Netzlaufwerk trennen" im Menü des Explorers nutzen können.


    smbstatus -L
    liefert:
    "No locked files"

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Dann schieb doch mal ein Word-Doc auf das SMB-Share und oeffne es mit Word und mach dann nochmal ne Abfrage. Und schieb mal ne groessere Datei rueber und mach waehrenddessen eine Abfrage.


    Ich glaube aber, dass das in etwa so ne Abfrage waere, wie Ihr sie wollt. Bei mir haben allerdings tests ergeben, dass es ein paar Leichen im Keller gibt - einige Dateien bleiben gelocked, obwohl man die seit ewigkeiten nicht mehr angefasst hat (natuerlich immer nur je SMB-Neustart).


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Quote

    Original von hannsens


    Ich wuerde dass in ein shutdown-hook einbauen, wie bei NVRAM-Wakeup oder ACPI-Wakeup. Wo steht es denn jetzt?


    das hab ich nicht (ich hab ja debian + selbstkompilierten VDR naja mal schaun, was so alles passiert


    Quote

    Offensichtlich liefert bei Dir

    Code
    my $pid=qx{pidof $_ 2>&1};


    Falsche Werte. Probier doch mal die eine Zeile einzufuege, um zu loggen, welche PID (oder Fehlermeldung) er erhält:


    Code
    my $pid=qx{pidof $_ 2>&1};
    # NEU:
    $response.=qx{$log "Process $_ with PID $pid still active"};
    # /NEU
                    if ($pid ne "") {

    ja du hast recht, an der lags ich hab's so gelöst:


    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

  • Hi,


    also erstmal ein dickes Lob für dein Script. Funktioniert soweit!
    Nur die Samba-Sache stört gewaltig.
    Egal ob ich über ein Netzwerklaufwerk (das ich wieder getrennt habe) oder über Blablabla\Arbeitsgruppe\VDR\Freigabe zugegriffen und den Explorer wieder geschlossen habe, dein Script meint immer noch, dass wer eingelogt ist. Nur wenn ich den Windows Rechner runter fahre kapiert es das!


    Meine Idee: Könntest du das Script so umschreiben, dass es nicht mehr prüft, ob wer eingeloggt ist, sondern wie lange schon via Samba nix mehr gelesen (bzw geschreiben) worden ist? (Bei mir ist /video als readonly freigegeben)
    Leider kann ich es net selber umschreiben ;(


    Wär cool, wenn du da was machen würdest!
    Sonst müsste ich den ganzen Samba Abschnitt rausbauen, was sehr schade wäre!

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!