| OSX 10.10.5] Die Skriptausführung wird gestoppt, wenn der Bildschirm gesperrt ist.


10

Ich habe ein Skript ausgeführt, das im Terminal ewig dauert.

Ich wollte es unbeaufsichtigt ausführen, während ich von meinem MacBook weg arbeitete, also wählte ich aus dem Menü (oben rechts) Benutzername > Anmeldefenster ... , das NICHT Abmelden ist, sondern den 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 herausfinden, dass das Skript während des Sperrens des Bildschirms die ganze Zeit angehalten wurde und einfach dort weitermachte, wo es beim Entsperren des Bildschirms ausgelöst wurde.

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

Wie kann ich das erreichen?

Antworten:


1

Sie haben Recht, dass die schnelle Benutzerumschaltung (aktiviert durch Klicken auf BenutzernameAnmeldefenster…) Sie nicht abmeldet. Sie setzt jedoch aktiv ausgeführte Anwendungen aus und verhindert so, dass intensive Aufgaben (oder sogar die Medienwiedergabe) die Nutzung Ihres Systems durch einen anderen Benutzer beeinträchtigen.

Stattdessen möchten Sie Ihren Bildschirm mit dem Schlüsselbundzugriff sperren .

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

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

Bildschirm sperren

Wie pro @MJK , müssen Sie möglicherweise auch von dem Einschlafen Ihres Mac verhindern , bevor zu Fuß entfernt.


7

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


Ich denke, dass Ihr Computer nach einer bestimmten Zeit in den Ruhezustand wechselt, nachdem Sie zum Anmeldefenster gewechselt haben, wodurch Ihr Skript gestoppt wird.

Um zu verhindern, dass Ihr System in den Ruhezustand wechselt, während Ihr Skript ausgeführt wird, können Sie es caffeinate -sim Terminal ausführen (Hinweis: Funktioniert nur auf MacBooks, wenn eine Wechselstromversorgung angeschlossen ist) oder 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, aktivieren Sie die Option "Kennwort erforderlich" in den Systemeinstellungen:

Passwort erforderlich

Sobald das Display (nicht das System) in den Ruhezustand wechselt (auch in den Einstellungen konfigurierbar), müssen Sie ein Kennwort eingeben, um auf das Konto zugreifen zu können.

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


Es gibt auch eine Sleep-Taste im Apple-Menü, wenn das hilft.
DonielF

1
@DonielF In der Tat, aber das versetzt das System in den Ruhezustand, wodurch die Skriptausführung gestoppt wird. Dies kann auch durch CMD + OPTION + EJECT
YourMJK

Diese Taste versetzt das Display nicht in den Ruhezustand? Gut zu wissen.
DonielF

2
@DonielF Zusätzlich zum Einschalten des Systems wird auch die Anzeige in den Ruhezustand versetzt
YourMJK
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.