我不断在系统日志中收到以下消息:
com.apple.launchd.peruser.0 (homebrew.mxcl.memcached[PID]) 退出代码:64 com.apple.launchd.peruser.0 (homebrew.mxcl.memcached) 限制重生:将在 10 秒后启动。
在网上搜索后,我了解到这是由于进程无法启动导致的。解决办法是从 launchd 中卸载 plist,方法是launchctl 卸载-w /Library/LaunchAgents/homebrew.mxcl.memcached.plist, 和launchctl 删除 homebrew.mxcl.memcached,我已经做了。
请注意,消息中的 peruser.0 表示它正在为 root 用户运行“peruser”。我以 root 用户身份登录以卸载 homebrew.mxcl.memcached 条目并删除 launchd 中的标签。
我已经确认启动控制列表memcached 不再存在,当我尝试在 launchctl 中卸载/删除 memcached 时,我也收到了预期的错误消息。我还收到'launchctl stop 错误:没有这样的过程' 当我做launchctl stop homebrew.mxcl.memcached。看起来 memcached plist 已成功从 launchctl 中删除。
但是,对于 root 用户来说,该进程似乎仍在用户级别加载,因为我所做的操作并没有停止消息。当我以 root 身份注销并以其他用户身份登录时,消息停止,当我以 root 身份重新登录时,消息再次开始。
我很困惑为什么该进程仍然会为 root 用户触发。因为所有迹象都表明 plist 已从 launchd 中删除。
如能得到任何帮助/提示我将非常感激。
谢谢!
答案1
当您launchctl
以 root 身份运行时,它会与 launchd 的系统实例交互,而不是与每个用户的实例交互。因此,我不知道如何使用它来管理 root 用户的代理。但由于每次以 root 身份登录时都会重新加载该代理,我猜您在 /var/root/Library/LaunchAgents 中有一个 .plist 文件的副本 - 删除它,然后注销并以 root 身份重新登录,它应该就消失了。
答案2
我最终不得不从 /Library/LaunchAgents 中删除原始 plist 以停止显示消息。该文件也必须保留在文件夹中,因为当我尝试将其放回并重新登录时,消息会再次显示。
可能有一种方法可以为 root 用户卸载 plist peruser,但现在我只能删除该文件。感谢 Gordon 的帮助!