Ich habe ein lang laufendes Skript auf dem Remotecomputer.
Ich möchte meine SSH-Sitzung nicht beenden und muss sie in ein Shell-Skript eingeben.
Wie kann verhindert werden, dass mein Mac über die Befehlszeile in den Ruhezustand wechselt?
sleep-wake
command-line
Kobame
quelle
quelle
Antworten:
In Mountain Lion können Sie den
caffeinate
Befehl verwenden.verhindert den Leerlauf für 1000 Sekunden.
quelle
Die Lösung für dieses Problem ist nicht hält den Client (Mac) wach. Solche Ansätze sind nicht verlässlich. Was passiert, wenn die Netzwerkverbindung unterbrochen wird? Selbst wenn Ihr Mac wach ist, wird das Skript angehalten.
Benutzen
nohup
Wenn Ihr lang laufendes Skript aufgerufen wird
eternity.sh
, versuchen Sie Folgendes:nohup /path/to/eternity.sh > /path/to/output.out &
Jetzt können Sie sogar die Verbindung schließen und Ihr Skript wird weiter ausgeführt . Die
&
Hintergründe des Prozesses, damit Sie die Verbindung offen halten und Befehle eingeben können. Zeigen Sie alle Ausgaben Ihres Skripts an über:tail -f /path/to/output.out
Die Pfade in den Beispielen sind optional, wenn sich das Skript in Ihrem Pfad befindet und die Skriptausgabe
output.out
in das aktuelle Verzeichnis geschrieben werden soll.Ich verwalte Skripte, die tagelang ausgeführt werden. Skripte wie diese sollten vom Terminal getrennt werden. Zum Glück
nohup
bietet dies einen leicht zu merkenden Befehlsaufruf, um dies zu erreichen - denken Sie an kein Auflegen .quelle
man screen
.Eine weitere Option ist pmset . Verwenden Sie den Befehl
pmset noidle
, um den Ruhezustand zu verhindern, solange er ausgeführtpmset
wird. Leider ist ein separates Terminalfenster erforderlichpmset
, in dem ausgeführt wird. Mit der anderen Optioncaffeinate
können Sie jedoch nur eine bestimmte Zeit einstellen . Es ist also eine Frage der Wahl, ob Sie eine zweite SSH-Sitzung eröffnen oder sich mit einer Zeitbeschränkung befassen möchten.Bearbeiten: Laut dem Kommentar von binarybob können Sie es tatsächlich im Hintergrund wie folgt ausführen:
pmset noidle &
Um zumpmset
Typ zurückzukehrenfg
.quelle
pmset
im Hintergrund ausführenpmset noidle &
und daher weiter verwenden. Geben Siefg
bekommenpmset
zurück, an welcher Stelle Sie können Strg + C,!pmset noidle
- Sehr schön, wenn Sie einen Desktop haben, der IPython-Notebooks bedient, und einen Laptop, der eine Remoteverbindung herstellt.Erläuterung:
-i
- Vermeiden Sie müßigen Schlaf.-s
- Verhindern Sie den Systemschlaf (vollständig, auch wenn Sie den Deckel schließen). Hinweis: Es funktioniert nur bei Wechselstrom./bin/ssh
- Schreiben Sie einfach weiter den Befehl, den Sie ausführen möchten. Diessh
direkte Verwendung anstelle von/bin/ssh
sollte ebenfalls funktionieren.Ergebnisse: Ihr System wird nicht in den Ruhezustand versetzt, solange der
ssh
Befehl ausgeführt wird.quelle
Wenn Sie nach der nuklearen Option suchen, wie ich es war:
- Aktivieren oder Deaktivieren des Ruhezustands aufgrund von Inaktivität des Mac-Systems über die Befehlszeile in OS X.
quelle
Der StarMessage-Bildschirmschoner ( http://starmessagesoftware.com/moonscreensaver/ ) bietet auch die Option, den MAC 2 Stunden, 8 Stunden oder dauerhaft wach zu halten. Diese Art der Deaktivierung des MAC-Schlafes ist viel einfacher als Koffein.
quelle