launchctl unload;事后尝试会显示“找不到该文件或目录/没有找到要卸载的内容”。当然,这个守护进程是可重新启动的,所以当我杀死它时,它会重新创建。
我尝试使用 launchctl list 以获取一个适用于 launchctl remove 的标签,但守护进程已经不再列出。
除了重新启动,是否有办法让 launchd 忘记这个守护进程和/或重新扫描配置文件?
launchctl unload;事后尝试会显示“找不到该文件或目录/没有找到要卸载的内容”。当然,这个守护进程是可重新启动的,所以当我杀死它时,它会重新创建。
我尝试使用 launchctl list 以获取一个适用于 launchctl remove 的标签,但守护进程已经不再列出。
除了重新启动,是否有办法让 launchd 忘记这个守护进程和/或重新扫描配置文件?
sudo launchctl list
或者将它们排序,以便清晰地区分出com.apple的部分:
sudo launchctl list | sort
然后你可以将其移除,例如:
sudo launchctl remove com.sassafras.KeyAccess.daemon
重要提示:如果您不希望在机器重新启动时出现守护进程,请删除相关的plist文件。
launchctl unload,然后删除 .plist 文件,对吗? - JohnnyQfind / -name LaunchDaemons 2> /dev/null 可以列出所有.plist文件的可能位置...希望对你有所帮助... - Robert Swiftsudo ps aux或其他您喜欢的方式查看具有进程的所有用户,然后使用sudo launchctl asuser [UniqueID] launchctl list来查看每个用户的列表。 - David Smith今天遇到了同样的问题,即使在重新命名 plist 文件后,服务仍然继续运行于旧标签之下。该服务一直出现在 ps 列表和 sudo launchctl list 中。
解决此问题的命令是 bootout:
sudo launchctl bootout system/<label-obtained-from-launchctl-list>
显然,如果服务不在 /Library/LaunchDaemons 中,则可以不用 sudo 和 system/ 前缀(似乎 system/ 是 launchd 术语中的一个 domain)。