在 OS X Yosemite (10.10) 上,有没有办法删除服务的启用/禁用覆盖设置?
例如,要为 root 永久禁用不存在的服务“测试”,请执行以下操作:
sudo launchctl disable user/0/test
检查它是否已添加到禁用列表中:
sudo launchctl print-disabled user/0
结果:
disabled services = {
"test" => true
}
login item associations = {
}
现在,如何从禁用服务列表中删除“测试”?
(我知道我可以启用它,但我只想完全删除该条目。)
笔记:
如果我重新启动计算机,我会看到“测试”覆盖已添加到launchd disabled
文件中:
sudo cat /var/db/com.apple.xpc.launchd/disabled.0.plist
结果:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>test</key>
<true/>
</dict>
</plist>
我尝试运行此命令以手动将其从.plist
文件中删除:
sudo /usr/libexec/Plistbuddy /var/db/com.apple.xpc.launchd/disabled.0.plist -c Delete:test
这确实会从文件中删除它,但是当我重新启动计算机时它又会再次出现。有任何想法吗?