Mac-Osx
如何檢查是否設置了啟動服務的 OS X“禁用”標誌?
根據
launchctl
(強調我的)的手冊頁:-w 覆蓋 Disabled 鍵並將其設置為 false。在以前的版本中,此選項會修改配置文件。現在 Disabled 鍵的狀態儲存在磁碟上的其他位置。
因為禁用標誌的目前狀態不再在
.plist
文件本身中設置,所以檢查Disabled
密鑰不再是判斷服務是否會在下次啟動時執行的準確方法。這個“磁碟上的其他地方”在哪裡?更重要的是(更重要的是),如何檢查是否設置了這個標誌?
此外,是否可以將服務設置為在下次啟動時執行而不強制它立即啟動(如
launchctl load -w /Library/LaunchDaemons/my-service.plist
)?
禁用現在(從 10.6.x 開始)儲存在 /private/var/db/launchd.db/com.apple.launchd/overrides.plist 中,條目如下:
<key>com.apple.AppleFileServer</key> <dict> <key>Disabled</key> <true/> </dict>
您可以解析此文件以查看哪些已啟動項被覆蓋,但該文件設置為僅 root 訪問權限(“-rw——- 1 root wheel”),並且不能保證 Apple 不會更改如何東西再次儲存在10.7中……
另外,我不知道有什麼方法可以使現有的啟動項在下次啟動時載入而不立即載入。(如果是新項目,沒問題:確保其中包含 Disabled=false,然後將其放入 /Library/LaunchDaemons。)