rtcwake
Re: rtcwake
Nein, natürlich nicht. Ich möchte, dass ein automatisches reboot in einem batch-script nach rtcwake in der angegebenen Form ausgeführt wird.
Grüße, Günther
Grüße, Günther
Re: rtcwake
Ich denke es reicht, wenn du die 3 Schritte genau so in ein Skript schreibst. pm-utils löst sowas meine ich auf diese Weise.
Das Skript wird durch den Suspend ja nicht beendet und sollte nach dem Resume nach dem rtcwake weiterlaufen – in diesem Fall löst es dann einen Neustart aus.
Code: Alles auswählen
#!/bin/sh
/etc/init.d/vdr stop
rtcwake -m mem ...
# dürfte auch ohne sleep funktionieren
sleep 10
reboot
Manchmal bekannt als Just (another) Terminal Hacker.
Re: rtcwake
Also, damit ich das nicht missverstehe: Die Schlafzeit soll keine 10sec oder irgendeine andere konstante Dauer betragen, sie ist variabel, mindestens eine Stunde, wegen weniger schicke ich das Gerät nicht schlafen. Aber wenn du das sagst, dann probiere ich mal...
Grüße, Günther
Grüße, Günther
Re: rtcwake
Die "Schlafzeit" wird nach dem Aufwachen ausgeführt, um ihm Zeit zu geben, wieder komplett aufzuwachen, bevor er herunterfährt. ggf. musst du die erhöhen, wenn es nicht funktioniert.
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: rtcwake
Ich glaube NAB und ich verstehen unter "Schafzeit" jeweils was anderes. Für NAB ist es die Zeit, die das script NACH dem Aufwachen warten soll, bevor es den nächsten Befehl (hier reboot) ausführt. Ich dagegen dachte an die Zeit, in der der Rechner inaktiv bleibt, also gerade nicht aufwachen soll. Habe ich das korrekt interpretiert? Wenn ja: sind die zusätzlichen 10s irgendwie von Belang?
[edit], scheinbar sind sie es nicht: Es läuft!!!
Schön, schön, schön, Hätt' ich nicht gedacht, eigentlich hätte ich erwartet, dass das Zicken-AAs Tevii mir wieder durch Bestehen auf sekundenlanger absoluter Strom-Abstinenz einen Strich durch die Rechnung macht.
So, jetzt brauche ich noch einen Dialog, mit dem ich die zwei Parameter: Datum und Uhrzeit in das script kriege.
[edit], scheinbar sind sie es nicht: Es läuft!!!
Schön, schön, schön, Hätt' ich nicht gedacht, eigentlich hätte ich erwartet, dass das Zicken-AAs Tevii mir wieder durch Bestehen auf sekundenlanger absoluter Strom-Abstinenz einen Strich durch die Rechnung macht.
So, jetzt brauche ich noch einen Dialog, mit dem ich die zwei Parameter: Datum und Uhrzeit in das script kriege.
Re: rtcwake
Ja, das hast du richtig interpretiert. Wahrscheinlich ist das sleep an der Stelle wirklich überflüssig und du kannst es einfach streichen. Wie NAB schreibt, wollte ich nur sichergehen, dass der Rechner richtig wieder aufwacht.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: rtcwake
Du musst zenity installieren.
ungetestet ... probiere es aus, bevor du es mit -m mem scharf schaltest.
Code: Alles auswählen
#!/bin/sh
Weckzeit=`zenity --entry` # muss im Format 20150205 12:05 eingegeben werden.
WeckzeitS=`date -d "$Weckzeit" +%s`
echo Gewünschte Weckzeit in Sekunden: $WeckzeitS
rtcwake -m no -t $WeckzeitS
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: rtcwake
Du könntest noch versuchen, ob der Rechner aus S5/Soft-Off aufwacht, wenn im BIOS RTC Alarm auf disabled gestellt ist. Ich habe ein Mainboard, das nur mit so einer kontraintuitiven Einstellung funktioniert. Manchmal braucht man auch die Kerneloption "hpet=disable".
Außerdem kann VDR dem Shutdown-Skript die Anfangszeit des nächsten Timers übergeben. Da brauchst Du nix händisch eingeben.
Außerdem kann VDR dem Shutdown-Skript die Anfangszeit des nächsten Timers übergeben. Da brauchst Du nix händisch eingeben.
Re: rtcwake
zenity: 40 mb für zwei Eingaben??? Möchte ich eigentlich nicht
Wie kriege ich "zusammen" oder "datum" und "zeit" anstelle von '20150208 12:45'
in. Ich sagte ja schon, diese shell-Syntax ist mir ein Greuel.
Auf SleipniRs Vorschäge komme ich päter zurück.
Grüße, Günther
Code: Alles auswählen
read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
zusammen="'"$datum' '$zeit"'"
in
Code: Alles auswählen
rtcwake -u -m mem -t $(date -d '20150208 12:45' +%s)
Auf SleipniRs Vorschäge komme ich päter zurück.
Grüße, Günther
Re: rtcwake
Code: Alles auswählen
read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
zusammen="$datum $zeit"
echo Weckzeit: $zusammen
sekunden=`date -d "$zusammen" +%s`
echo in Sekunden: $sekunden
rtcwake -m no -t $sekunden
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: rtcwake
Für mich ist diese Syntax keine Frage von primitiv oder hochentwickelt, für mich ist die schlicht und ergreifend krank. Aber lassen wir das, sonst krieg ich wieder Ärger mit Vertretern der reinen Lehre.
Also was ist hier noch falsch:
Ich finde den Fehler nicht.
Grüße, Günther
Also was ist hier noch falsch:
Code: Alles auswählen
#!/bin/sh
read -p "Einschaltdatum (jjjjmmtt): " datum
read -p "Einschaltzeit (hh:mm): " zeit
/etc/init.d/vdr stop
zusammen="$datum $zeit"
sekunden='date -d "$zusammen" +%s'
rtcwake -u -m mem -t $sekunden
sleep 5
reboot
Grüße, Günther
Re: rtcwake
Code: Alles auswählen
sekunden='date -d "$zusammen" +%s'
Code: Alles auswählen
$ sekunden='date -d "$zusammen" +%s'
$ echo $sekunden
date -d "$zusammen" +%s
Code: Alles auswählen
sekunden=$(date -d "$zusammen" +%s)
# oder äquivalent, aber evtl. mit Verwechslungsgefahr:
sekunden=`date -d "$zusammen" +%s`
Manchmal bekannt als Just (another) Terminal Hacker.
Re: rtcwake
Ich glaub, genau das meint guennid mit "krank"
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: rtcwake
Der Unterschied ist doch offensichtlich
Manchmal bekannt als Just (another) Terminal Hacker.
Re: rtcwake
Ich hab's geahnt!!! Der Entwickler wird wahrscheinlich ein Franko-Kanadier sein. Accent grave statt einfacher Anführungszeichen!!! Ich fass es nicht!!! Hoffen wir, dass es das war.
Re: rtcwake
Merci beaucoup mes amis! J'ai realiseé, que la langue française est essentielle pour d'écrire en code de bash.
Hoffentlich liest jetzt hier kein Franzose mit, denn dessen Sprache beherrsche ich noch weniger als Englisch.
@SleipniR
Grüße, Günther
Hoffentlich liest jetzt hier kein Franzose mit, denn dessen Sprache beherrsche ich noch weniger als Englisch.
@SleipniR
Habe ich doch schon, s.o.Du könntest noch versuchen, ob der Rechner aus S5/Soft-Off aufwacht
Das schaue ich mir bei Gelegenheit an.Manchmal braucht man auch die Kerneloption "hpet=disable"
Wie geht? Du mir sagen, bitte?Außerdem kann VDR dem Shutdown-Skript die Anfangszeit des nächsten Timers übergeben.
Grüße, Günther
Re: rtcwake
guennid, zenity hat übrigens eine freundliche grafische Datumseingabe, bei der man dir z.B. "morgen" schon vorauswählen könnte. Für die Uhrzeit gibt's da nix, da ist das Bash-Script genau so komfortabel.
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: rtcwake
Ich habe den bisherigen Thread so verstanden, dass S3/Suspend to RAM funktioniert, aber nicht S5/Soft-Off.guennid hat geschrieben:Habe ich doch schon, s.o.SleipniR hat geschrieben:Du könntest noch versuchen, ob der Rechner aus S5/Soft-Off aufwacht
Du mußt VDR so konfigurieren, dass er das System herunterfahren kann. In /etc/default/vdrguennid hat geschrieben:Wie geht? Du mir sagen, bitte?SleipniR hat geschrieben:Außerdem kann VDR dem Shutdown-Skript die Anfangszeit des nächsten Timers übergeben.
Code: Alles auswählen
ENABLE_SHUTDOWN=1
Der erste ($1) ist die Zeit des nächsten Timers (übliche Unix-Zeit in UTC) oder "0" falls kein Timer gesetzt ist.
Der zweite ($2) ist die Anzahl der Sekunden bis zum nächsten Timer.
Die restlichen drei spielen für das Setzen der Weckzeit keine Rolle.
Jetzt brauchst Du ein Skript, z.B. /usr/share/vdr/shutdown-hooks/S99.rtcwake, das prüft, ob $1 ungleich null ist, eine Vorlaufzeit (z.B. 300 s) von dem Wert abzieht und dann mit rtcwake die entsprechende Weckzeit setzt. Üblicherweise wird der Rechner danach mit "shutdown -h now" heruntergefahren, bei Suspend to RAM müsste man dann $SHUTDOWNCMD noch entsprechend anpassen.
Die Doku dazu findest Du in /usr/share/doc/vdr/README.Debian.gz unter "Shutdown-Hooks" und in /usr/share/doc/vdr/INSTALL.gz unter "Automatic shutdown".
Einzelheiten können wir dann morgen klären.
Re: rtcwake
Das will ich eigentlich gar nicht, ist Pseudo-Bequemlichkeit.NAB hat geschrieben:...bei der man dir z.B. "morgen" schon vorauswählen könnte.
Ähm... Verstehe ich jetzt den Sinn dieser Antwort?SleipniR hat geschrieben:.guennid hat geschrieben:Habe ich doch schon, s.oSleipniR hat geschrieben:Du könntest noch versuchen, ob der Rechner aus S5/Soft-Off aufwacht
Ich habe den bisherigen Thread so verstanden, dass S3/Suspend to RAM funktioniert, aber nicht S5/Soft-Off.
Der ist bereits so konfiguriert.SleipniR hat geschrieben:Du mußt VDR so konfigurieren, dass er das System herunterfahren kann. In /etc/default/vdrCode: Alles auswählen
ENABLE_SHUTDOWN=1
Unter /usr/share/vdr/shutdown-hooks/ gibt es hier keine scripte. Es gibt einen einzigen Link und der zeigt in /etc/vdr/shutdown-hooks/ auf eine einzige darin befindliche Datei: s90.custom in der jeglicher Inhalt auskommentiert ist. Bevor ich mich da jetzt für einen neuen vdr-Studiengang einschreibe, bleibe ich vielleicht doch lieber bei meinem kleinen bescheidenen scriptchen.SleipniR hat geschrieben:Wenn Du die Power-Taste von VDR drückst oder der automatische Shutdown auslöst, werden die Skripte in /usr/share/vdr/shutdown-hooks/ mit fünf Parametern aufgerufen.
Der erste ($1) ist die Zeit des nächsten Timers (übliche Unix-Zeit in UTC) oder "0" falls kein Timer gesetzt ist.
Der zweite ($2) ist die Anzahl der Sekunden bis zum nächsten Timer.
Die restlichen drei spielen für das Setzen der Weckzeit keine Rolle.
Jetzt brauchst Du ein Skript, z.B. /usr/share/vdr/shutdown-hooks/S99.rtcwake, das prüft, ob $1 ungleich null ist, eine Vorlaufzeit (z.B. 300 s) von dem Wert abzieht und dann mit rtcwake die entsprechende Weckzeit setzt. Üblicherweise wird der Rechner danach mit "shutdown -h now" heruntergefahren, bei Suspend to RAM müsste man dann $SHUTDOWNCMD noch entsprechend anpassen.
Die Doku dazu findest Du in /usr/share/doc/vdr/README.Debian.gz unter "Shutdown-Hooks" und in /usr/share/doc/vdr/INSTALL.gz unter "Automatic shutdown".
Einzelheiten können wir dann morgen klären.
Grüße, Günther
Re: rtcwake
Du mußt ja erst eines schreiben und dort ablegen, damit es beim Shutdown ausgeführt wird. (Bzw. in /etc/vdr/shutdown-hooks/ und nach /usr/share/vdr/shutdown-hooks/ verlinken, wenn Du Wert auf LSB-Konformität legst.)guennid hat geschrieben:Unter /usr/share/vdr/shutdown-hooks/ gibt es hier keine scripte.
Bei mir sieht das dann so aus:
Code: Alles auswählen
VORLAUF=300
TIMER=$1
if [ $1 -ne 0 ]; then
WECKZEIT=$(($TIMER - $VORLAUF))
rtcwake -l -m no -t $WECKZEIT
else
exit 0
fi
Re: rtcwake
Okay, auch nicht schlecht, insbesondere die autmatische Verknüpfung mit dem timer. Ich habe noch ein paar zusätzliche Fragen:
1. Gehe ich recht in der Annahme, dass vdr die eingegebenen timer nach Datum und Uhrzeit sortiert, dh. man sich darauf verlassen kann, dass im 1. Parameter immer der chronologisch nächste timer steckt und zwar auch dann, wenn man timer manuell gesetzt hat?
Ich setze die timer mehr und mehr händisch, es macht absolut keinen Spaß, die offiziellen Ende-Zeiten von ARD und ZDF zu akzeptieren - und zwar nicht nur samstags.
2. Du gibst eine Vorlaufzeit von fünf Minuten. Wenn ich recht erinnere, nimmt vdr das eh als default-Wert für einen timer (5min bevor die eigentliche Sendung beginnt), ergo ist der überflüssig, wenn man diese default-Zeit nicht geändert hat und mit ihr zufrieden ist - richtig?
3. NAB und auch du geben trcwake immer -m no mit. Wenn ich die manpage richtig lese, dann wird dadurch NUR die Aufwachzeit gespeichert, aber der Rechner läuft einfach weiter. Daraus schließe ich, dass ihr später, ja was macht? Meiner einer MUSS in S3, alles andere funktioniert bisher nicht, ein shutdown geht also hier nicht. Wie erreiche ich händisch und nachträglich S3.
Grüße, Günther
1. Gehe ich recht in der Annahme, dass vdr die eingegebenen timer nach Datum und Uhrzeit sortiert, dh. man sich darauf verlassen kann, dass im 1. Parameter immer der chronologisch nächste timer steckt und zwar auch dann, wenn man timer manuell gesetzt hat?
Ich setze die timer mehr und mehr händisch, es macht absolut keinen Spaß, die offiziellen Ende-Zeiten von ARD und ZDF zu akzeptieren - und zwar nicht nur samstags.
2. Du gibst eine Vorlaufzeit von fünf Minuten. Wenn ich recht erinnere, nimmt vdr das eh als default-Wert für einen timer (5min bevor die eigentliche Sendung beginnt), ergo ist der überflüssig, wenn man diese default-Zeit nicht geändert hat und mit ihr zufrieden ist - richtig?
3. NAB und auch du geben trcwake immer -m no mit. Wenn ich die manpage richtig lese, dann wird dadurch NUR die Aufwachzeit gespeichert, aber der Rechner läuft einfach weiter. Daraus schließe ich, dass ihr später, ja was macht? Meiner einer MUSS in S3, alles andere funktioniert bisher nicht, ein shutdown geht also hier nicht. Wie erreiche ich händisch und nachträglich S3.
Grüße, Günther
Re: rtcwake
1. Es wird die Anfangszeit des nächsten aktiven Timers übergeben, also so wie im Timer-Menü aufgeführt.
2. Der Vorlauf bezieht sich auf die Anfangszeit des Timers, nicht auf die Anfangszeit der Sendung. Wenn der Timer 5 min vor Sendungsbeginn gesetzt ist, startet mein Rechner also 10 min vor Sendungsbeginn und 5 min vor der Aufnahme.
3. Ja, mein Skript stellt nur die Weckzeit, der Rechner wird dann per default mit "shutdown -h now" heruntergefahren. Diesen Befehl kann man ändern, wenn man die Variable SHUTDOWNCMD setzt.
Aufwachen aus S3 funktioniert bei mir nicht, also kann ich es nicht ausprobieren. Aber wenn Du wie im Beitrag weiter oben einen Reboot nach dem Aufwecken machen willst, könnte es so funktionieren:
Das Skript speicherst Du so wie es da steht (ohne #!/bin/sh am Anfang) als /usr/share/vdr/shutdown-hooks/S99.rtcwake, die Datei muss nicht ausführbar sein. Außerdem brauchst Du das Paket pm-utils.
Und probier vorher mal aus, ob sich der Rechner mit "pm-suspend" in den S3 schicken läßt und mit dem Netzschalter wieder ordnungsgemäß aufwacht.
2. Der Vorlauf bezieht sich auf die Anfangszeit des Timers, nicht auf die Anfangszeit der Sendung. Wenn der Timer 5 min vor Sendungsbeginn gesetzt ist, startet mein Rechner also 10 min vor Sendungsbeginn und 5 min vor der Aufnahme.
3. Ja, mein Skript stellt nur die Weckzeit, der Rechner wird dann per default mit "shutdown -h now" heruntergefahren. Diesen Befehl kann man ändern, wenn man die Variable SHUTDOWNCMD setzt.
Aufwachen aus S3 funktioniert bei mir nicht, also kann ich es nicht ausprobieren. Aber wenn Du wie im Beitrag weiter oben einen Reboot nach dem Aufwecken machen willst, könnte es so funktionieren:
Code: Alles auswählen
VORLAUF=300
TIMER=$1
if [ $1 -ne 0 ]; then
WECKZEIT=$(($TIMER - $VORLAUF))
rtcwake -u -m no -t $WECKZEIT
SHUTDOWNCMD="pm-suspend; sleep 5; reboot"
else
exit 0
fi
Und probier vorher mal aus, ob sich der Rechner mit "pm-suspend" in den S3 schicken läßt und mit dem Netzschalter wieder ordnungsgemäß aufwacht.
Re: rtcwake
Aha! So geht das beim Testen.mit dem Netzschalter wieder ordnungsgemäß aufwacht
Das war womöglich nicht das, was ich wissen wollte. Man kann timer händisch setzen siehe [1], das tue ich immer öfter, insbesondere remote. Muss ich dann auch selbst dafür sorgen, dass, wenn ich mehrere setze, ich die in der zeitlich richtigen Reihenfolge eintrage, oder findet vdr selbst "den nächsten aktiven Timer" für das Aufnehmen und dementsprechend für das suspend-Kommando. Frage hängt auch hiermit zusammen:Es wird die Anfangszeit des nächsten aktiven Timers übergeben, also so wie im Timer-Menü aufgeführt
WANN macht er das Neuschreiben? Muss/kann/soll ich das selbst auslösen?vdr-wiki hat geschrieben:Der VDR übersetzt die Sendernummer in Kanal-ID wenn timers.conf neu geschrieben wird.
[1] http://www.vdr-wiki.de/wiki/index.php/Timers.conf
Grüße, Günther