终止由 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>
.
我的应用程序(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>
.