在(10.10)上,是否有任何方法可以删除服务的启用/禁用覆盖设置?
例如,要永久禁用根用户不存在的服务“测试”,请执行以下操作:
sudo launchctl disable user/0/test检查是否已将其添加到禁用列表中:
sudo launchctl print-disabled user/0结果:
disabled services = {
"test" => true
}
login item associations = {
}现在,如何从禁用服务列表中删除"test“?
(我知道我可以启用它,但我只想完全删除该条目。)
注:
如果重新启动计算机,则会看到“test”覆盖已添加到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这确实从文件中删除了它,但是当我重新启动我的计算机时,它就会再次出现。有什么想法吗?
发布于 2015-09-23 03:56:00
似乎过去在overrides.plist中的信息的性质已经改变了。
根据launchctl的man页面中的“遗留”load / unload子命令。
-w重写禁用的键,并将其设置为false或true,分别用于加载和卸载子命令。在以前的版本中,此选项将修改配置文件。现在,禁用密钥的状态存储在磁盘的其他位置,在这个位置上,除了launchd之外,任何进程都不可能直接操作。
我想现在..。信息存储在/var/db/com.apple.xpc.launchd目录中。
我的东西里有几个夹板。
config disabled.0.plist disabled.200.plist ... disabled.501.plist ... disabled.migrated loginitems.0.plist ... loginitems.501.plist ...
在这种情况下,文件名是指不同用户的id (501是我的,0是根用户)。更改这些文件中的键(显然是根文件)应该使用黑暗霸主launchd删除相应的重写。
如果没有,尝试在启动到恢复时编辑这些相同的文件,或者其他一些驱动器--这样你就可以在launchd没有运行/一直试图成为老板的时候处理它们。
发布于 2017-11-30 17:58:38
我可以使用单用户模式来完成这个任务。这些步骤是:
/sbin/mount -uw //var/db/com.apple.xpc.launchd/disabled.*.plist文件,按需要删除禁用项。exit型发布于 2015-09-11 19:25:31
我刚和LaunchControl在约塞米蒂…上解决了这个问题它必须有惊人的小GUI来管理您的守护进程和代理在OSX上。它有很多特性…所以只要用木桶安装就行了。
$ brew cask install launchcontrol然后找到您的服务(在使用代理或全局守护程序或其他任何…))在左边的列表中。
选择它,然后在主菜单中转到Job=>Override禁用key=>Always False
然后重新启动检查..。应该行得通!
https://stackoverflow.com/questions/31206756
复制相似问题