답변:
편집 : 10.7.4부터 한 번 선택 해제하면 "다시 로그인 할 때 창 다시 열기"확인란이 선택되지 않은 상태로 유지되므로 아래 해킹이 더 이상 필요하지 않습니다.
한 가지 옵션은 다음에서 LoginwindowLaunchesRelaunchApps
키를 false 로 설정하는 것 입니다 ~/Library/Preferences/com.apple.loginwindow.plist
.
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
이 속성 목록을 ~/Library/LaunchAgents/logout_saves_state.plist
다음 과 같이 저장할 수도 있습니다 .
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>logout_saves_state</string>
<key>ProgramArguments</key>
<array>
<string>defaults</string>
<string>write</string>
<string>com.apple.loginwindow</string>
<string>TALLogoutSavesState</string>
<string>-bool</string>
<string>false</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
그런 다음 실행 launchctl load ~/Library/LaunchAgents/logout_saves_state.plist
하거나 로그 아웃 한 후 다시 로그인 하여 특성 목록을로드하십시오 .
TALLogoutSavesState
로그 아웃했다가 다시 로그인 할 때 때때로 true로 재설정되었으므로 defaults write com.apple.loginwindow TALLogoutSavesState -bool false
한 번만 실행해도 작동 하지 않았습니다.
이러한 옵션 중 어느 것도 실제로 확인란을 선택하지 않은 것으로 표시하지는 않지만 동일한 효과를 갖습니다.
이 버그는 Lion 업데이트 10.7.4 에서 수정되었습니다 .
OS X Lion v10.7.4 업데이트에는 다음과 같은 수정 사항이 포함되어 있습니다.
"다시 로그인 할 때 창 다시 열기"설정이 항상 활성화되어있는 문제를 해결하십시오.
아니요, 항상 "on"으로 설정되어 있습니다. 그러나 실행할 수있는 스크립트가있어 기능을 비활성화합니다. 상자는 여전히 선택되어 있지만 기능이 더 이상 작동하지 않습니다.
터미널 내에서 다음을 한 줄에 붙여 넣습니다.
curl http://goo.gl/Z4EFC -L -s -o ~/fixlogin.sh && chmod +x ~/fixlogin.sh && sudo ~/fixlogin.sh ; rm ~/fixlogin.sh
이 명령은 스크립트를 다운로드하여 적절한 위치에 놓고 실행 가능하게 한 다음 임시 파일을 제거합니다. 궁금한 점이 있으면 다운로드 한 bash 스크립트의 내용은 다음과 같습니다.
#!/bin/bash
echo "#!/bin/bash" > /tmp/loginfix.sh
echo "rm /Users/*/Library/Preferences/ByHost/com.apple.loginwindow.*" >> /tmp/loginfix.sh
mv /tmp/loginfix.sh /usr/bin/loginfix.sh
chmod +x /usr/bin/loginfix.sh
defaults write com.apple.loginwindow LoginHook /usr/bin/loginfix.sh
이 OS X Lion 기능의 기본 동작으로 되돌리려면 다음 기본 쓰기 명령을 입력하십시오.
sudo defaults delete com.apple.loginwindow LoginHook
그리고 확인란의 선택에 따라 창 복원을 다시 선택할 수있게됩니다.
출처 : http://osxdaily.com/
기록을 위해, 우리는 이것에 대해 이야기하고 있습니다 :
문제는 마지막 종료시 확인란의 선택을 취소하면 OS X에서 기억하지 않는다는 것입니다. 후속 종료시에는 항상 기본적으로 확인란이 선택되어 있습니다.
이 문제에 대한 두 가지 다른 해결책을 찾았습니다 . 이상적이지는 않지만 트릭을 수행하는 것처럼 보입니다.
Terminal.app를 열고 다음 명령을 입력하십시오.
defaults write com.apple.loginwindow TALLogoutSavesState -bool false
defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false
이 확인란을 선택하면 여전히 "다시 로그인 할 때 창 다시 열기"옵션이 비활성화됩니다. 당신은 그것을 무시할 수 있습니다.
적어도 현재로서는 더 나은 해결책이 없다고 두려워합니다.
시스템 전체의 모든 앱에 대해 비활성화 할 수있는 시스템 설정도 있습니다. 시스템 환경 설정 → 일반으로 이동하십시오 .
또는 Terminal.app에서이 명령을 실행할 수 있습니다.
# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
TALLogoutSavesState
로그 아웃했다가 다시 로그인 한 후 때때로 true로 재설정됩니다. defaults write com.apple.loginwindow TALLogoutSavesState -bool false
시작된 에이전트 등을 사용하여 로그인시 실행해야합니다.
LoginwindowLaunchesRelaunchApps
설정 과 함께 여러 번 로그 아웃 / 재부팅 한 후에도 제대로 작동하는 것 같습니다 . 두 가지를 개별적으로 테스트 한 것을 기억합니다.이 경우 귀하의 답변에 설명 된 문제가 발생했습니다. AFAICT, 트릭을 수행하는 두 가지 설정의 조합에 관한 것이 있습니다.
defaults read com.apple.loginwindow TALLogoutSavesState
돌아와서 돌아 왔습니다 1
.
TALLogoutSavesState
여전히 자체적으로 true로 설정됩니다. 그러나 LoginwindowLaunchesRelaunchApps -bool false
혼자 창을 복원하는 데 충분하지 않은 것 같습니다.
"다시 로그인 할 때 창 다시 열기"를 선택 해제해도 문제가 해결되지 않았습니다. Apple Script에서 다시 시작한 후 또는 터미널에서 shutdown 명령을 사용하여 앱을 계속 다시 열었습니다.
macOS El Capitan, Yosemite, Sierra, High Sierra에서 작동합니다.
솔루션 : 세션 상태를 저장하는 데 사용하는 파일에 대한 OS X 액세스를 거부하십시오. 터미널 , AppleScript 및 시스템 충돌로 재부팅 / 종료 한 후에도 앱을 다시 열 수 없습니다 .
Cmd+Shift+G
(폴더로 이동)~/Library/Preferences/ByHost/
하여 붙여 넣기com.apple.loginwindow
Locked
선택하십시오)나중에이 변경 사항을 취소하고 기능을 다시 사용하려면이 파일을 삭제하면 OS가 다시 작성합니다.
Cmd+Shift+G
(폴더로 이동)~/Library/Preferences/ByHost/
하여 붙여 넣기com.apple.loginwindow
루트가 소유 한 파일을 만듭니다 (그렇지 않으면 OS가 파일을 교체합니다)
sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
읽거나 쓸 수 없도록 모든 권한을 제거하십시오.
sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
로그인 후 "모든 앱 다시 열기"를 다시 활성화하십시오
sudo rm -f ~/Library/Preferences/ByHost/com.apple.loginwindow*