Как отключить перезапуск приложения и восстановление окна в El Capitan при перезагрузке?

19

Как отключить функцию «перезапустить приложения после перезагрузки», а также функцию «открыть окна при перезапуске»? Когда я перезагружаюсь (будь то после аппаратного сброса или команды перезагрузки), я хочу, чтобы у меня был пустой рабочий стол, а не все, что у меня было открыто раньше. Кроме того, когда я открываю приложение, я не хочу, чтобы дюжина вещей, над которыми я работал ранее, открывалась одновременно.

tattar8
источник

Ответы:

25

Если вы ищете способ навсегда отключить эту функцию, чтобы вам не приходилось запоминать дополнительный шаг «снять флажок» при каждом выключении компьютера, вы можете просто запретить OS X доступ к файлу, который он использует для хранения. ваше состояние сеанса.

В терминале

# 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*

Если вы хотите отменить это изменение позже и снова включить эту функцию, возможно, из-за того, что вы получили повреждение мозга и теперь находите зацикливание при загрузке забавным, просто удалите этот файл, и ОС создаст его заново.

# Re-enable El Capitan's obnoxious "relaunch all the things" behavior
sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*
Дэн
источник
Такое отличное решение. Это раздражало меня так долго, но никогда не занимало время, чтобы исследовать, как остановить это навсегда.
Брэди
Лучший ответ. Работает на Эль-Капитан и Сьерра.
Дэррил Кларк
1
Upvoting сейчас, перезапуск. Я буду понижать голосование, если через 2 минуты снова увижу это окно :-)
Уильям Энтрикен
1
Два важных дополнения к этому решению: 1) Вам может потребоваться удалить и повторно добавить пустую версию этого файла перед изменением разрешений. В противном случае он просто откроет все окна, которые были сохранены последними. 2) Вам также может понадобиться изменить некоторые другие настройки, чтобы убедиться, что приложения не настроены на запуск при входе в систему.
Chuim
4

Подход, с которым я добился успеха, - это в основном подход с заблокированными файлами Джона Смффифа, после очистки файла. Приятно то, что это можно сделать без прав root и с помощью простого двухстрочного сценария оболочки:

# 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_
источник
После быстрого погружения в findруководство: восклицательный знак в первой команде - это unary notсинтаксический анализ команды find, а не расширения bash history. Он отрицает -size 0выражение, так что найден только непустой файл loginwindow. Это также может быть написано как -not.
Джо
3

Самое простое решение, которое я использую, это найти файл в поиске: ~ / Library / Preferences / ByHost / com.apple.loginwindow

Затем либо закройте все приложения, чтобы очистить содержимое вышеуказанных файлов, либо, предпочтительно, просто откройте файл в Text Edit и удалите все содержимое, а затем сохраните его.

Затем повторно выберите файл в Finder, но не открывайте его

Затем нажмите клавишу Apple (рядом с пробелом) + i или перейдите в меню «Файл» и нажмите «Получить информацию». Затем в разделе «Общее» отображаемого информационного окна установите флажок «Заблокировано» (файл заблокирован).

Используя этот метод, гораздо проще включить или отключить, так как процесс гораздо проще запомнить. Код терминала, который вы иногда используете, вряд ли будет легко запомнить или восстановить.

Джон Смффиф
источник
1
Проблема больше в том, чтобы запомнить имя и расположение файла, для которого нужно изменить настройки. Как только вы поймете, что для многих пользователей из среды Unix команды оболочки chmod и chown и их значение общеизвестны, при этом вы знаете, что Apple создала «заблокированную» настройку, о которой они не знают, что именно это означает, довольно эзотерично
gpvos
0

Чтобы приложения не открывали предыдущие документы, выберите Системные настройки> Общие и установите флажок Закрыть окна при выходе из приложения.

введите описание изображения здесь

Чтобы предотвратить повторный запуск приложений после перезагрузки, снимите флажок во всплывающем окне «Завершение работы или перезапуск»:

введите описание изображения здесь

IconDaemon
источник
5
У меня уже установлен первый флажок, и я всегда снимаю флажок вновь открыть. Но когда мне по какой-то причине приходится делать полный сброс, все 50 вещей, которые у меня были, открываются, и я пытаюсь это остановить.
tattar8
2
Я бы сконцентрировался на исправлении того, что заставляет вас делать полный сброс. Прямо сейчас вы просите автомеханика починить гудок, потому что тормоза не работают.
Тецуджин
3
Проблема в том, что MacOS будет по-прежнему открывать окна после принудительного выключения или сбоя. Другими словами, те самые ситуации, когда вы меньше всего хотели бы, чтобы окна открывались (и, возможно, повторяли проблему)
ViggoV
1
@Tetsujin: моя система стабильна, поэтому необходимость в аппаратном сбросе возникает нерегулярно и очень редко, но возникают ошибки, поэтому причина обычно бывает разовая, каждый раз разная. Тем не менее, в такое время я особенно не хочу неприятного сюрприза, когда система заново открывает все.
gpvos