Jak wyłączyć ponowne uruchamianie aplikacji i przywracanie okna w El Capitan przy ponownym uruchomieniu?

19

Jak wyłączyć zarówno funkcję „Uruchom ponownie aplikacje po ponownym uruchomieniu”, jak i funkcję „Otwórz ponownie okna przy ponownym uruchomieniu”? Podczas ponownego uruchamiania (czy to po twardym resecie, czy po ponownym uruchomieniu) chcę mieć pusty pulpit, a nie wszystko, co wcześniej miałem otwarte. Ponadto, kiedy otwieram aplikację, nie chcę, aby tuzin rzeczy, nad którymi pracowałem wcześniej, otwierało się jednocześnie.

tattar8
źródło

Odpowiedzi:

25

Jeśli szukasz sposobu na trwałe wyłączenie tej funkcji, abyś nie musiał pamiętać dodatkowego kroku „odznacz pole” za każdym razem, gdy wyłączasz urządzenie, możesz po prostu odmówić OS X dostępu do pliku, którego używa do przechowywania twój stan sesji.

W terminalu

# Make the file owned by root (otherwise the OS will just replace it)
sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*

# Remove all permissions, so it can't be read or written to
sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*

Jeśli chcesz później cofnąć tę zmianę i ponownie włączyć tę funkcję, być może dlatego, że poniósłeś uszkodzenie mózgu, a teraz zabawne jest zapętlenie rozruchu, po prostu usuń ten plik, a system operacyjny go odtworzy.

# Re-enable El Capitan's obnoxious "relaunch all the things" behavior
sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*
Dan
źródło
Takie świetne rozwiązanie. Tak długo mnie to denerwowało, ale nigdy nie zastanawiałem się, jak trwale to zatrzymać.
Brady
Najlepsza odpowiedź. Działa na El Capitan i Sierra.
Darryl E. Clarke
1
Aktualizowanie teraz, restartowanie. Oddam głos, jeśli ponownie zobaczę to okno za 2 minuty :-)
William Entriken,
1
Dwa ważne dodatki do tego rozwiązania: 1) Przed zmianą uprawnień może być konieczne usunięcie i ponowne dodanie pustej wersji tego pliku. W przeciwnym razie po prostu otworzy się ponownie bez względu na to, które okna były ostatnio utrzymywane. 2) Może być również konieczna zmiana niektórych innych ustawień, aby upewnić się, że aplikacje nie są ustawione do uruchamiania podczas logowania.
Chuim
4

Podejście, które odniosłem sukces, to w zasadzie podejście do pliku zablokowanego przez Johna Smfiftha po opróżnieniu pliku. Zaletą jest to, że można to zrobić bez uprawnień roota i przy użyciu prostego dwuwierszowego skryptu powłoki:

# clear the file if it isn't empty
find ~/Library/Preferences/ByHost/ -name 'com.apple.loginwindow*' ! -size 0 -exec tee {} \; < /dev/null
# set the user immutable flag
find ~/Library/Preferences/ByHost/ -name 'com.apple.loginwindow*' -exec chflags uimmutable {} \;
href_
źródło
Po szybkim zanurzeniu się w findpodręczniku: wykrzyknik w pierwszym poleceniu jest unary notanalizowany przez polecenie find, a nie przez rozszerzenie historii bash. Neguje to -size 0wyrażenie, tak że znaleziono tylko niepusty plik okna logowania. Można to również zapisać jako -not.
Joe
3

Najprostszym rozwiązaniem, z którego korzystam, jest zlokalizowanie pliku w wyszukiwarce: ~ / Library / Preferences / ByHost / com.apple.loginwindow

Następnie zamknij wszystkie aplikacje, aby opróżnić powyższe pliki, lub najlepiej po prostu otwórz plik w edytorze tekstu i usuń całą zawartość, a następnie zapisz.

Następnie ponownie wybierz plik w wyszukiwarce, ale go nie otwieraj

Następnie naciśnij klawisz Apple (obok spacji) + i lub przejdź do menu plików i kliknij „Uzyskaj informacje”. Następnie w sekcji Ogólne wyświetlanego okna informacyjnego zaznacz pole wyboru „Zablokowane” (plik jest następnie blokowany).

Korzystając z tej metody, włączanie i wyłączanie jest znacznie łatwiejsze, ponieważ proces jest o wiele prostszy do zapamiętania. Kodu terminala, którego używasz od czasu do czasu, prawdopodobnie nie będzie łatwo zapamiętać ani odzyskać.

John Smfifth
źródło
1
Problemem jest raczej zapamiętanie nazwy i lokalizacji pliku, którego ustawienia należy zmienić. Kiedy wiesz, że dla wielu użytkowników z uniksowego środowiska polecenia chmod i chown oraz ich znaczenie są powszechnie znane, wiedząc, że Apple stworzyło ustawienie „zablokowane”, o którym nie wiedzą, co to dokładnie znaczy, jest dość ezoteryczny.
gpvos
0

Aby uniemożliwić aplikacjom otwieranie poprzednich dokumentów, przejdź do Preferencji systemowych> Ogólne i zaznacz pole wyboru Zamknij okna po zamknięciu aplikacji.

wprowadź opis zdjęcia tutaj

Aby nie dopuścić do ponownego uruchomienia aplikacji po ponownym uruchomieniu, usuń zaznaczenie pola wyboru w wyskakującym oknie Zamknij lub Uruchom ponownie:

wprowadź opis zdjęcia tutaj

IconDaemon
źródło
5
Mam już zaznaczone pierwsze pole i zawsze odznaczam pole ponownego otwierania. Ale kiedy muszę wykonać twardy reset z jakiegokolwiek powodu, wszystkie 50 rzeczy, które miałem otwarte, ponownie uruchamiam i staram się to zatrzymać.
tattar8
2
Skoncentrowałbym się na naprawianiu wszystkiego, co powoduje, że musisz mocno zresetować. W tej chwili prosisz mechanika samochodowego o naprawienie klaksonu, ponieważ hamulce nie działają.
Tetsujin,
3
Problem polega na tym, że MacOS nadal otwiera okna po wymuszonym zamknięciu lub awarii. Innymi słowy, same sytuacje, w których chciałbyś, aby okna ponownie się otwierały (i potencjalnie powtarzały problem)
ViggoV,
1
@ Tetsujin: mój system jest stabilny, więc potrzeba twardego resetu zdarza się nieregularnie i bardzo rzadko, ale zdarzają się błędy, więc przyczyną jest zwykle problem jednorazowy, za każdym razem inny. Niemniej jednak w tym momencie szczególnie nie chcę, aby nieprzyjemna niespodzianka systemu ponownie otworzyła wszystko.
gpvos