Vermeiden, dass alle Apps erneut geöffnet werden, wenn OS X abstürzt

Manchmal stürzt mein Computer aufgrund unbekannter Fehler ab und startet neu. Es passiert normalerweise, wenn ich an etwas arbeite, also ein paar Apps geöffnet sind. OS X hat diese lästige Funktion, bei der es versucht, alle Apps beim Neustart neu zu öffnen. Sie können es beim manuellen Neustart deaktivieren, aber es tut es immer noch, wenn der Computer nach einem Absturz neu gestartet wird.

Ich denke, diese Funktion wurde entwickelt, um Zeit zu sparen, aber sie verschwendet nur mehr Zeit, als sie wert ist, denn wenn der Computer nach einem Absturz neu gestartet wird, starte ich ihn normalerweise einfach noch einmal neu (diesmal mit deaktivierter Option „Apps erneut öffnen“), nur um zu bekommen in einen arbeitsfähigen Zustand. Das Problem ist, dass es weiterhin Apps spawnt und den Neustart verhindert.

Das Deaktivieren dieser Funktion würde verhindern, dass ich nach einem Absturz komplett neu starten muss. Gibt es eine Möglichkeit, OS X daran zu hindern?

Wollen Sie wirklich, dass wir Ihnen helfen, die Fehler loszuwerden?
@Ruskes Abstürze können aus vielen Gründen auftreten. Die Frage ist für sich genommen gültig

Antworten (4)

Verhindern Sie dauerhaft, dass macOS High Sierra Apps nach einem Neustart wieder öffnet

Funktioniert in macOS El Capitan, Yosemite, Sierra, High Sierra.

Lösung: Verweigern Sie OS X den Zugriff auf die Datei, die zum Speichern Ihres Sitzungsstatus verwendet wird. Es verhindert das erneute Öffnen von Apps auch nach dem Neustart/Herunterfahren von Terminal , von AppleScript und einem Systemabsturz.

GUI-Methode

  1. Öffnen Sie den Finder
  2. Cmd+Shift+G(Zum Ordner gehen)
  3. Copypaste ~/Library/Preferences/ByHost/und bestätigen
  4. Suchen Sie die Datei, die mit beginntcom.apple.loginwindow
  5. Doppelklick (öffnet in TextEdit)
  6. Entfernen Sie alle Inhalte und speichern Sie die leere Datei. Eventuell erscheint ein zusätzlicher Bestätigungsdialog.
  7. Rechtsklick, Informationen erhalten
  8. Datei sperren (Kontrollkästchen aktivieren)

GUI-Methode (Rückgängig)

Wenn Sie diese Änderung später rückgängig machen und die Funktion wieder aktivieren möchten, löschen Sie einfach diese Datei und das Betriebssystem erstellt sie neu.

  1. Öffnen Sie den Finder
  2. Cmd+Shift+G(Zum Ordner gehen)
  3. Copypaste ~/Library/Preferences/ByHost/und bestätigen
  4. Suchen Sie die Datei, die mit beginntcom.apple.loginwindow
  5. Einfach löschen

CLI-Methode

  1. Öffnen Sie Terminal.app
  2. Machen Sie die Datei zu Root (andernfalls wird das Betriebssystem sie einfach ersetzen)

    sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
  3. Entfernen Sie alle Berechtigungen, sodass weder gelesen noch geschrieben werden kann

    sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
    

CLI-Methode (Rückgängig)

  1. Aktivieren Sie „Alle Apps erneut öffnen“ nach der Anmeldung erneut

    sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*
    
Vielen Dank für diese tolle Antwort! Es funktioniert gut und erfordert keinen Benutzereingriff, wie z. B. das Gedrückthalten der [Umschalt]-Taste beim Neustart des Systems, und eignet sich perfekt für unbeaufsichtigte Systeme, wie z. B. solche, die zur Unterstützung von Kiosken oder Informationsdisplays verwendet werden, die möglicherweise ihre eigenen ausführen müssen vorgegebene Startreihenfolge, die dadurch erschwert werden kann, dass das System bei einer automatischen Anmeldung nach einem Stromausfall Apps in einer anderen Reihenfolge neu startet.
@babca: Für die CLI-Methode möchten Sie vielleicht als ersten Schritt das Löschen des Inhalts der Datei hinzufügen, z.echo > ~/Library/Preferences/ByHost/com.apple.loginwindow*
In Big Sur hat es bei mir funktioniert

Ich fand, dass der Ansatz von @babca gut funktioniert, aber unter macOS Catalina war es für mich etwas anders. Ich hatte zwei com.apple.loginwindow.*.plistDateien drin ~/Library/Preferences/ByHost/und sie waren kein reiner Text - com.apple.loginwindow.AB6XXXXX-XXXX-XXXX-XXXX-XXXXXXX5291.plistund com.apple.loginwindow.111XXXXX-XXXX-XXXX-XXXX-XXXXXXXXAC43.plist.

Also habe ich die folgenden zwei Schritte für jede Datei durchgeführt:

Öffnete ( ⌘-O) jeden Finder in XCode (der Standard, glaube ich in Catalina), entfernte alle Einträge unter TALAppsToRelaunchAtLoginund speicherte die Datei.

Geben Sie hier die Bildbeschreibung ein

Haben Sie Info ( ⌘-I) für jeden im Finder und aktivieren Sie dann das Kontrollkästchen Locked. Beachten Sie, dass im Vorschaufeld ein leeres <array/>Inneres angezeigt wird TALAppsToRelaunchAtLogin.

Geben Sie hier die Bildbeschreibung ein

Um diese Änderung rückgängig zu machen, wiederholen Sie nur den letzten Schritt für jede Datei, aber deaktivieren Sie das LockedKontrollkästchen.

Ich führe eine andere Lösung ein, um einige meiner zusätzlichen Anforderungen zu erfüllen, die sie vielseitiger machen. Die Anforderungen sind:

  1. Es muss von der Befehlszeile stammen, damit ich kopieren und einfügen kann, anstatt ungeschickt durch eine Benutzeroberfläche zu klicken.
  2. Es muss etwas sein, das in eine for-Schleife eingefügt werden kann, damit ich jeden Benutzer auf einer Maschine ändern kann. (Irgendjemand von DevOps?) Außerdem sollte der Code immer noch alleine stehen können und keine for-Schleife erfordern , sodass ein Endbenutzer ihn selbst ausführen kann.
  3. Es muss in der Lage sein, damit umzugehen, dass sich das Home-Verzeichnis an einem nicht standardmäßigen Speicherort befindet.

Mit Hilfe des hier befindlichen Codes habe ich mir Folgendes ausgedacht, das mindestens in sh und bash auf Catalina und Big Sur funktioniert ...

# set user name, machine uuid, and home dir
someUser=$(stat -f%Su /dev/console)
machineUUID=$(ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}')
homeDir=$(dscacheutil -q user -a name ${someUser} | grep 'dir:' | awk '{print $2}')

# delete the plist array
/usr/libexec/PlistBuddy -c 'Delete :TALAppsToRelaunchAtLogin' ${homeDir}/Library/Preferences/ByHost/com.apple.loginwindow.${machineUUID}.plist

# make the file readonly
chflags uimmutable ${homeDir}/Library/Preferences/ByHost/com.apple.loginwindow.${machineUUID}.plist
Funktioniert hervorragend auf einem alten High Sierra "Musik" Macmini. Jetzt ist es wie ein CD-Player, in Sekunden einsatzbereit. Vielen Dank.

Versuchen Sie, gedrückt zu halten, Shiftwenn Sie das Anmeldefenster sehen, und lassen Sie es los, wenn das Dock angezeigt wird.

Dies verhindert, dass Elemente in Ihren Anmeldeelementen gestartet werden, wenn Sie sich anmelden, verhindert jedoch nicht, dass Apps fortgesetzt werden.

Ich habe keine Ahnung, warum die sichere Anmeldung hier abgelehnt wurde. Dies ist eine schnelle und elegante Lösung, um dann wieder einzusteigen und dauerhafte Änderungen vorzunehmen.
Es ist möglich, dass es abgelehnt wurde, weil es nicht zuverlässig funktioniert. Es funktioniert nie für mich.
@bmike, weil, wie die Antwort sogar sagt: Es verhindert nicht, dass Apps wieder geöffnet werden. Genau das hat das OP gefragt, und genau darauf geht diese Antwort nicht ein