Mac-Osx

從 launchd 中刪除程序而不重新啟動

  • December 28, 2011

我有一台我不想在其上執行 finder 的機器,所以最初我使它無法執行:

sudo chmod -R a-x /System/Library/CoreServices/Finder.app

但後來意識到,launchd 仍在嘗試每秒多次啟動 finder,導致包含數百萬行的巨大日誌文件:

com.apple.launchd.peruser.502[109] (com.apple.Finder[93799]) <Error>: posix_spawn("/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder", ...): Permission denied
com.apple.launchd.peruser.502[109] (com.apple.Finder[93799]) <Warning>: Exited with exit code: 1

所以我進行了編輯/System/Library/LaunchAgents/com.apple.Finder.plist,使其不再啟動。我現在遇到的問題是強制 launchd 重新載入 plist,因此停止嘗試啟動 finder。但是,我無法重新啟動機器。

我曾嘗試使用 launchctl 來刪除和解除安裝程序,但這似乎不起作用:

$ sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Finder.plist 
launchctl: Error unloading: com.apple.Finder
$ sudo launchctl remove com.apple.Finder
launchctl remove error: No such process

無論如何我可以停止launchd不斷嘗試載入finder而不重新啟動機器?

Finder 是 LaunchAgent,而不是 LaunchDaemon,這意味著它是作為登錄會話的一部分載入的。要麼launchctl unload不使用sudo,要麼只註銷並重新登錄。

您的日誌顯示 Finder 正在為使用者 502 執行,但您正在使用 執行launchctlsudo並且 root 沒有執行 Finder。試試launchctl unload沒有sudo

引用自:https://serverfault.com/questions/287290