Einen Mac für eine einzige VPN-Aufgabe wach halten, nicht für das VPN
caffeinate hält eine Energieanforderung für den umhüllten Befehl, mehr nicht. Es kann keinen Tunnel neu verschlüsseln, keine Sitzung verlängern und keinen geschlossenen Deckel überleben.
Sie brauchen eine Übertragung, die fertig wird, während Sie weggehen, und der schlafende Mac ist der naheliegende Verdächtige. caffeinate kann eine Energieanforderung genau für dieses Zeitfenster halten, und es ist ein engeres Werkzeug, als es zunächst scheint. Es verhindert den Leerlaufschlaf, während ein Befehl läuft; es hält keine VPN-Sitzung am Leben und rettet keine Übertragung vor Anmeldedaten, die um Mitternacht ablaufen. Zu wissen, wo seine Reichweite endet, verhindert, dass der nächste Fehler der falschen Schicht angelastet wird.
Was die Anforderung tatsächlich hält
Das Programm bittet das Energieverwaltungssystem, eine Anforderung offen zu halten, solange der umhüllte Prozess lebt. Wenn der Prozess endet, endet die Anforderung mit ihm. Genau diese Lebensdauer ist der nützliche Teil: Sie schalten keine maschinenweite Einstellung um und hoffen, sich später an das Zurücknehmen zu erinnern.
Die Schalter wählen unterschiedliche Anforderungen. -i verhindert den Leerlaufschlaf des Systems. -d zielt auf den Bildschirmschlaf, und -s zielt auf den Systemschlaf in den Fällen, in denen das System ihn zulässt. Keiner von ihnen ist ein pauschales Versprechen, «wach zu bleiben», und keiner entsperrt den Bildschirm oder verhindert einen geschlossenen Deckel. Wählen Sie den, der zu der Unterbrechung passt, die Sie tatsächlich gesehen haben.
Diese Unterscheidung zählt, wenn jemand meldet, der Mac sei «trotzdem eingeschlafen». Die Frage ist, welche Anforderung angefordert wurde, für wie lange und welches Ereignis den Schlaf ausgelöst hat. Die Energieverwaltung bewertet mehrere Eingänge, und eine Anforderung deckt einen davon ab.
Umhüllen Sie die Aufgabe, statt die Sitzung zu verzieren
caffeinate -i /usr/bin/ssh [email protected]
Das hält die Leerlaufanforderung, solange der SSH-Client läuft, und genau darum geht es beim Umhüllen statt beim Starten im Hintergrund. Das VPN-Profil bleibt unberührt, es wird kein Keepalive gesendet, und an der Konfiguration des Tunnels ändert sich nichts.
Für ein begrenztes Zeitfenster ist der Dauer-Schalter die ehrliche Form:
caffeinate -i -t 1800
Beenden Sie diesen Aufruf mit seiner normalen Unterbrechung, wenn die Aufgabe früher fertig ist. Lassen Sie keinen Stapel von Hüllen im Hintergrund zurück und räumen Sie später nicht auf, indem Sie jeden Prozess mit demselben Namen töten; Sie erwischen dabei etwas, das Sie behalten wollten.
Schlaf ist eine Ursache, nicht die Ursache
Leerlaufschlaf zu verhindern nimmt eine Unterbrechung von der Liste. Es hebt keinen absichtlichen Schlafbefehl auf, keinen geschlossenen Deckel, keinen Stromausfall und keine Richtlinie, die ein Administrator gesetzt hat. Das sind getrennte Entscheidungen, und zu erwarten, dass eine Anforderung auf Benutzerebene sie gewinnt, ist der Weg, auf dem Leute zu dem Schluss kommen, das Werkzeug funktioniere nicht.
Bildschirmschlaf und Bildschirmsperre sind ebenfalls getrennt. Ein Mac kann bei ausgeschaltetem Bildschirm wach bleiben, und er kann sich sperren, während die Aufgabe weiterläuft. Wenn die Anforderung ein beleuchteter Bildschirm ist, ist das ein anderer Schalter; wenn die Anforderung ein entsperrter Bildschirm ist, bietet das kein Schalter. Sagen Sie, welches dieser drei Ergebnisse Sie wirklich brauchen, bevor Sie einen Schalter wählen, denn sie sind nicht ein Verhalten unter verschiedenen Namen.
Die VPN-Sitzung hat ihre eigene Uhr
Ein IPsec- oder TLS-Tunnel erneuert Schlüssel nach einem Zeitplan, auf den sich die Endpunkte geeinigt haben, und ein Server kann eine maximale Sitzungslebensdauer erzwingen, unabhängig von der Client-Aktivität. Anmeldedaten laufen ab. Eine Zugangsstrecke kann aus Gründen ausfallen, die nichts damit zu tun haben, ob das Notebook wach ist. Nichts davon kümmert sich um eine Energieanforderung.
Wenn also nützlicher Datenverkehr ausfällt, während der Mac offensichtlich wach ist, ist eine längere Dauer weder eine Erklärung noch eine Reparatur. Lesen Sie den Fehler: ein Schlüsselerneuerungsfehler, ein Ablauf der Authentifizierung und ein verlorener Träger sehen im Tunnel-Log unterschiedlich aus, und jeder hat seine eigene Lösung.
Legen Sie die Dauerhaftigkeit auf den entfernten Host
Wenn der Verlust der lokalen Verbindung Stunden Arbeit verschwenden würde, liegt die Antwort auf der anderen Seite. Ein Terminal-Multiplexer hält die Sitzung auf dem Server am Leben, wenn SSH stirbt, und ein Jobsystem hält die Arbeit am Leben, wenn die Sitzung endet. Keines von beiden hängt vom Energiezustand des Notebooks ab.
Das ist eine andere Fehlergrenze, und sie ist die, die bei langen Aufgaben zählt. Kombinieren Sie beides nur, wenn beides zutrifft: Die Maschine muss für den lokalen Teil der Arbeit wach bleiben, und der entfernte Teil muss eine Trennung überstehen. Prüfen Sie es dann, indem Sie sich von einem zweiten Terminal aus neu verbinden und nachsehen, ob der Job noch läuft.
Schreiben Sie auf, welche Anforderung Sie verwendet haben und wann sie endet. Eine kurzlebige betriebliche Wahl ist in Ordnung; eine unerklärte dauerhafte wird sechs Monate später zu einem Support-Ticket, wenn niemand mehr weiß, warum der Mac nie schläft.