OSX 10.10.5] Wykonanie skryptu zatrzymuje się po zablokowaniu ekranu?

10

Uruchomiłem skrypt, który trwa wieki w terminalu.

Chciałem uruchomić go bez nadzoru, gdy pracowałem z dala od mojego MacBooka, więc wybrałem z menu (w prawym górnym rogu) nazwę użytkownika > Okno logowania ... , które NIE jest wylogowaniem, ale ekranem blokady.

Spodziewałem się uruchomienia skryptu. Kiedy wróciłem kilka godzin później i odblokowałem ekran (wpisując hasło), musiałem dowiedzieć się, że kiedy ekran był zablokowany, skrypt był cały czas wstrzymywany i po prostu kontynuował, gdzie zaczął, gdy odblokowałem ekran.

Oczekiwanym zachowaniem (znanym z innych pochodnych systemu UNIX) byłoby uruchomienie, gdy interfejs użytkownika był zablokowany i bezpieczny.

Jak mogę to osiągnąć?

A Sz
źródło

Odpowiedzi:

1

Masz rację, że Szybkie przełączanie użytkowników (aktywowane poprzez kliknięcie Nazwa użytkownikaOkno logowania… nie wylogowuje Cię. Zawiesza jednak aktywnie działające aplikacje, zapobiegając w ten sposób intensywnym zadaniom (a nawet odtwarzaniu multimediów) zakłócania korzystania z systemu przez innego użytkownika.

Zamiast tego zablokuj ekran za pomocą dostępu do pęku kluczy .

Naciśnij ⌘ cmd space, a następnie, Keychain Accessaby uruchomić aplikację. Następnie na pasku menu kliknij Dostęp do pęku kluczyPreferencjeOgólne i sprawdź Show keychain status in menu bar .

Ikona kłódki pojawi się w obszarze systemowym paska menu. Wystarczy zablokować ekran, aby zablokować ekran.

Ekran blokady

Zgodnie z @MJK , może być również konieczne, aby komputer Mac nie zasypiał przed odejściem.


źródło
7

EDYCJA: Z macOS High Sierra (od wersji beta 5) możesz osiągnąć to samo zachowanie „ekranu blokady”, o którym wspomniał @Phong po prostu poprzez menu paska stanu bar:


Myślę, że dzieje się tak, że komputer przechodzi w stan uśpienia po pewnym czasie od przejścia do okna logowania, co powoduje zatrzymanie skryptu.

Aby zapobiec uśpieniu systemu podczas działania skryptu, możesz uruchomić go caffeinate -sw terminalu (uwaga: działa tylko na MacBookach, jeśli podłączone jest zasilanie prądem przemiennym) lub dołączyć go do skryptu. Aby zatrzymać polecenie, naciśnij CTRL + C.

Sposób, w jaki zabezpieczam swoje konto, gdy jestem jeszcze zalogowany, polega na włączeniu opcji „wymagaj hasła” w preferencjach systemowych:

wymagać hasła

Następnie, gdy tylko wyświetlacz (nie system) przejdzie w tryb uśpienia (również konfigurowany w preferencjach), musisz wprowadzić hasło, aby uzyskać dostęp do konta.

Możesz także ręcznie uruchomić uśpienie wyświetlacza, naciskając CTRL + SHIFT + EJECT (jeśli twoja klawiatura ma przycisk wysuwania) lub uruchamiając pmset displaysleepnow.

YourMJK
źródło
W menu Apple jest także przycisk uśpienia, jeśli to pomaga.
DonielF
1
@DonielF Rzeczywiście, ale to powoduje uśpienie systemu, co powoduje zatrzymanie wykonywania skryptu. Można to również uruchomić przez CMD + OPCJA +
EJEKT
Ten przycisk nie powoduje uśpienia wyświetlacza? Dobrze wiedzieć.
DonielF
2
@DonielF Oprócz uśpienia systemu powoduje on także uśpienie wyświetlacza
YourMJK