|OSX 10.10.5] Die Skriptausführung stoppt, wenn der Bildschirm gesperrt ist?

Ich habe ein Skript ausgeführt, das Ewigkeiten in Terminal dauert.

Ich wollte es unbeaufsichtigt ausführen, während ich von meinem MacBook wegarbeitete, also wählte ich aus dem Menü (oben rechts) Benutzername > Anmeldefenster ... , was NICHT das Abmelden ist, sondern der Sperrbildschirm.

Ich hatte erwartet, dass das Skript ausgeführt wird. Als ich Stunden später zurückkam und den Bildschirm entsperrte (indem ich mein Passwort eingab), musste ich feststellen, dass das Skript bei gesperrtem Bildschirm die ganze Zeit angehalten und einfach dort fortgesetzt wurde, wo es beim Entsperren des Bildschirms gestartet wurde.

Das erwartete Verhalten (bekannt von anderen UNIX-Derivaten) wäre die Ausführung gewesen, während die Benutzeroberfläche gesperrt und sicher war.

Wie kann ich das erreichen?

Antworten (2)

Sie haben Recht, dass die schnelle Benutzerumschaltung (aktiviert durch Klicken auf BenutzernameAnmeldefenster… ) Sie nicht abmeldet. Sie unterbricht jedoch aktiv laufende Anwendungen und verhindert so, dass intensive Aufgaben (oder sogar die Medienwiedergabe) die Nutzung Ihres Systems durch andere Benutzer beeinträchtigen.

Was Sie stattdessen tun möchten, ist, Ihren Bildschirm mit der Schlüsselbundverwaltung zu sperren .

Drücken Sie ⌘ cmd space, gefolgt von Keychain Access, um die App zu starten. Klicken Sie dann in der Menüleiste auf SchlüsselbundverwaltungEinstellungenAllgemein und aktivieren Sie Show keychain status in menu bar .

Im Systembereich Ihrer Menüleiste wird ein Schlosssymbol angezeigt. Klicken Sie einfach auf Bildschirm sperren, um Ihren Bildschirm zu sperren.

Bildschirm sperren

Gemäß @MJK müssen Sie möglicherweise auch verhindern, dass Ihr Mac in den Ruhezustand wechselt, bevor Sie weggehen.

BEARBEITEN: Mit macOS High Sierra (ab Beta 5) können Sie das gleiche von @Phong erwähnte "Sperrbildschirm" -Verhalten einfach über das  Statusleistenmenü erreichen:


Was meiner Meinung nach passiert, ist, dass Ihr Computer nach einer bestimmten Zeit, nachdem Sie zum Anmeldefenster gewechselt sind, in den Ruhezustand übergeht, wodurch Ihr Skript angehalten wird.

Um zu verhindern, dass Ihr System während der Ausführung Ihres Skripts in den Ruhezustand versetzt wird, können Sie es caffeinate -sim Terminal ausführen (Hinweis: funktioniert nur auf MacBooks, wenn eine Wechselstromversorgung angeschlossen ist) oder es in Ihr Skript aufnehmen. Um den Befehl zu stoppen, drücken Sie STRG+C.

Um mein Konto zu sichern, während ich noch angemeldet bin, aktiviere ich die Option „Passwort erforderlich“ in den Systemeinstellungen:

Passwort verlangen

Sobald dann das Display (nicht das System) in den Ruhezustand wechselt (ebenfalls in den Einstellungen konfigurierbar), müssen Sie ein Passwort eingeben, um auf das Konto zuzugreifen.

Sie können den Bildschirmruhezustand auch manuell auslösen, indem Sie STRG+UMSCHALT+AUSWERFEN drücken (wenn Ihre Tastatur über eine Auswurftaste verfügt) oder indem Sie ausführen pmset displaysleepnow.

Es gibt auch eine Sleep-Taste im Apple-Menü, falls das hilft.
@DonielF In der Tat, aber das versetzt das System in den Ruhezustand, wodurch die Skriptausführung gestoppt wird. Dies kann auch über CMD+OPTION+EJECT ausgelöst werden
Diese Taste versetzt das Display nicht in den Ruhezustand? Gut zu wissen.
@DonielF Zusätzlich zum Einschlafen des Systems wird auch das Display in den Ruhezustand versetzt