launchtl:删除plist文件后禁用守护程序的任何方法?


13

我试图永久禁用第3方守护程序,所以我从/ Library / LaunchDaemons中删除了它的plist文件-然后我意识到我没有launchctl unload对它进行任何操作。在事实发生后尝试产生“找不到此类文件或目录/找不到要卸载的文件”。而且,该守护进程当然是可重新启动的,所以当我杀死它时,它将重新创建。

我尝试这样做launchctl list是希望获得使用的标签,launchctl remove但是守护进程已不再列出。

如果不重新启动,是否有任何方法可以启动以忘记守护程序和/或重新扫描配置文件?


该文档尚不清楚,但launchctl kill com.example.product似乎可以正常工作。
阿披·贝克特

Answers:


18

要查看当前正在运行的所有守护程序,您需要输入:

sudo launchctl list

然后可以将其删除,例如:

sudo launchctl remove com.sassafras.KeyAccess.daemon

呵呵,我想如果您不是root用户,它只显示为用户启动的守护进程?
jhfrontz 2012年

2
这实际上对我不起作用。条目将在重新启动后返回。
德米特里·明科夫斯基2014年

3
@dimadima您是否删除了关联的plist文件?Dan提供的命令仅可操纵当前状态(在下次启动时将其重置为/ Library / LaunchDaemons中的内容)。
jhfrontz

@jhfrontz是的,到目前为止,我已经知道您必须这样做。谢谢。
德米特里·明科夫斯基

1
如果可以帮助任何人,那么实际上总会有多个唯一列表可用。目录中的所有用户都有他们自己的,尽管root用户和登录用户可能是最相关的。您可以查看与之有流程的所有用户,sudo ps aux或者可以选择sudo launchctl asuser [UniqueID] launchctl list查看每个用户的列表。
大卫·史密斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.