ubuntuusers.de

hibernate über ssh

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Xubuntuuser

Avatar von Xubuntuuser

Anmeldungsdatum:
6. November 2007

Beiträge: 147

Wohnort: Mainz

Manchmal ist es schwer nach etwas zu suchen. Mein Problem ist, dass ich einen entfernten Rechner gerne über ssh steuern würde.

Ich habe mir dazu ein Bash Skript geschrieben, das drei Modi kennt on/off/down. Folgende Befehle werden dann ausgeführt:

1
2
3
4
5
6
7
8
9
function up(){
	wakeonlan  $MAC;
}
function off(){
    ssh ${USER}@${SERVER} sudo /sbin/shutdown -h now;
}
function down(){
    ssh ${USER}@${SERVER} sudo /usr/sbin/pm-hibernate;
}

Das funktoniert an sich auch (falls jemand über diesen Thread stolpert, es funktoniert nur, wenn shutdown und hibernate vom Benutzer ohne Passwort ausgeführt werden darf - muss also per visudo bearbeitet sein).

Nur der Aufruf von down() funktioniert nicht schön. Der Rechner fährt zwar runter und läßt sich auch wieder aufwecken, aber auf dem client bleibt der Aufruf "stecken" und erzeugt einen Timeout. Der Prompt wird also erst nach ca. 60 Sekunden angezeigt (der ssh timeout) verbunden mit der Meldung "Write failed: Broken pipe", die eben von diesem timeout kommt.

Meine Frage, warum wird bei dem Aufruf von off() dieser Timeout nicht erzeugt und wie kann diesen beim Aufruf von down() verhindern?

rennradler

Anmeldungsdatum:
27. Februar 2010

Beiträge: 1836

Ich verwende das für meinen Backup-Server, weil ich genau das gleich Problem hatte:

ssh $USER@$CLIENT echo sudo /usr/sbin/pm-suspend | at now + 1 minutes &>/dev/null

Kleiner Nachteil: 1 Minuten Verzögerung. Ich kann damit leben.

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Wohnort: Österreich

Versuche es mal so:

1
2
3
function down(){
    ssh ${USER}@${SERVER} "nohup sh -c 'sudo /usr/sbin/pm-hibernate' > /dev/null 2>&1 &";
}

Xubuntuuser

(Themenstarter)
Avatar von Xubuntuuser

Anmeldungsdatum:
6. November 2007

Beiträge: 147

Wohnort: Mainz

Mit der Verzögerung hat es bei mir immer noch nicht geklappt. Aber mit dem nohub Befehl funktioniert es jetzt ohne diese Meldung.

Danke.

Antworten |