终止由 launchagents 加载的进程

kill process which is loaded by launchagents

我的应用程序(my.app)将添加一个plist文件(com.agent.plist)到/Library/LaunchAgents,它会在[=18时触发另一个应用程序(agent.app) =] 是 runatload。我知道 agent.app 将作为非 root 权限加载,因为它在 /Library/LaunchAgents 中。 下次,在 my.app 的卸载脚本中,我希望用户 launchtl remove com.agent.plist 终止 agent.app 进程。但是卸载脚本是由 root 权限触发的,所以它似乎使用 sudo launchtl remove com.agent.plist,这不起作用,因为 agent.app 不属于 root。

所以谁能告诉我如何实现这个?

这……很有挑战性。这是 How can you start a LaunchAgent for the first time without rebooting, when your code runs as a LaunchDaemon?.

的逆版本

您可以使用该答案中给出的相同代码;只需将 load -w <your_plist> 替换为 remove <your_bundle>.