Hallo community,
ich brauche dringend den Befehl um meinen Rechner an aeinem bestimmten Tag auszuschalten.
Ich denke per ” shutdown datum & uhrzeit. Ich finde aber nur Seiten wo steht zu welcher Zeit, also heute, und nicht mit Datum.
Grund:
Ich fahr heute Nacht noch weg, der Rechner hat noch 2 Tage zu tun und dann soll er ausgehen.
Bitte um Antwort bis 23:20 uhr.
Sonst muss ich hier alles abbrechen weil ich den Rechner nicht 2 Wochen am Stück laufen lassen will.
Danke im Vorraus
daniel
Ich kenne das Tool Gshutdown – also vom Namen her :-) Das bietet eine grafische Oberfläche für gesteuertes Runterfahren. Ob es nun genau das kann was Du willst weiß ich nicht.
Auf jeden Fall kann man zwei Tage sonst ja auch gerade noch so in Stunden umrechnen ;-)
Oh – 23:20 Uhr – komme ich wohl zu spät.
Wie zuverlässig ist denn die Angabe wie lange dieser eine Vorgang noch läuft?
mit dem Befehl “at” kannst du wie oben im Post ein Kommando erst zu einem bestimmten Datum inkl. Uhrzeit ausführen lassen, aber was ist wenn dann der Prozess doch nicht fertig ist?
Es wäre ja blöd, wenn der PC dann doch runter fährt und zig Arbeitsstunden umsonst waren.
Folgendes Shell Script würde das Problem lösen:
#!/bin/bash
process_name=”ich_bin_ein_wichtiger_prozess”
pkill -0 $process_name
error_level=$?
echo “errorlevel für pkill -0 $process_name: $error_level”
if [ $error_level -eq 0 ]; then
echo “$process_name Rennt noch!”
else
echo “$process_name ist zu ende, fahre herunter”
#shutdown -h now
fi
Was noch zu tun ist:
1. Den Wert von process_name= auf den Namen des Prozesses der wichtig ist umbenennen.
2. Das Script testen ob es rennt.
3. Das #Kommentar Zeichen vor shutdown -h now entfernen.
4. Das Script in deinen Cronjob eintragen so das es 1x in der Stunde läuft.
Danke,
aber was das scripten angeht, habe ich ( noch ) genauso viel Ahnung wie vom fliegen.
Fange erst an das zu lernen. Hab mir jetzt ein O’Reilly Buch gekauft.
~~~~~~~~~~~~
ich hab das jetzt anders gelöst.
Nachdem ich weiter gesucht habe, bin ich auf die Möglichkeit der ssh Verbindung gestoßen und konnte so gestern meinen Rechner aus der Ferne ausschalten. Zumindest hoffe ich das der Rechner jetzt aus ist, weil ich kann keine Verbindung mehr zu ihm aufbauen.
dennoch werde ich mir Ihren Tipp gut beiseite legen fürs nächste mal, (wenn ich das verstehe was Sie geschrieben haben).
mfg
daniel S
Ja… SSH ist natürlich der Trumpf. Daran hätten wir gleich denken können.
Wenn der PC Internet hat (zu 99% ja) und man selbst im Urlaub echtes Internet hat, nicht nur eine “Surfstation” (zu 75% ja), kann man ja selbst den PC ausschalten wenn man sieht, dass er fertig ist mit der Arbeit.
Das Script von mir hätte auch nur dann funktioniert wenn sich das Programm nach getätigter Arbeit selbst beendet hätte. Die meisten grafischen Dinge wie Videoschnitt & 3D Renderer machen das eh nicht.
Wenn die SSH Verbindung nach einem “going down for Shutdown…” “plötzlich” verloren gegangen ist, wir der PC daheim ausgeschaltet sein.
Noch später, aber trotzdem: .
at
Das ist quasi die Allzweckwaffe zum zeitgesteuerten Prozessstart. Eignet sich z.B. auch prima als Ersatz für den Radiowecker.
René
Es gibt (je nach Shell) auch den Befehl “wait PID”
zB wenn rsync xyz &
[3128]
zurückgibt
hätte zB auch
wait 3128 && shutdown -h now
es getan.
Oder auch so:
( [Prozess-der-lange-dauert] || [Verhalten-im-Fehlerfall] ) && shutdown -h now
René
[Nachtrag]
Und jetzt noch in luxuriös.
Sei [Prozess] derjenige Befehl, um den es eigentlich geht und der sowohl im Erfolgs- als auch im Fehlerfall eine Ausgabe produziert.
[Logfile] sei eine Datei, die die Meldungen des Prozesses aufnehmen soll.
Los gehts:
( [Prozess] &> [Logfile] || sleep 1 ) && shutdown -h now
Grundregel #3: Die Bash ist dein Freund.
René