gpt4 book ai didi

macos - 卸载包时停止 LaunchAgent

转载 作者:行者123 更新时间:2023-12-02 02:04:49 25 4
gpt4 key购买 nike

我构建了一个提供 LaunchAgent 的应用程序(一个带有“托盘”图标的小型 UI 应用程序;假设在 /Library/LaunchAgents/foo.plist 中定义。

安装包 launchctl 时会自动加载此 LaunchAgent 描述并为所有登录用户启动进程。 (即我不必像使用 LaunchDaemons 那样使用 launchctl load 加载它)。

当我卸载软件包时,所有文件 - 包括 /Library/LaunchAgents 中的 LaunchAgent plist 文件已删除,但进程仍在运行。

(我有几个用户登录,所以这个代理有几个实例)

现在,当以 root 身份运行时,我应该如何告诉 root launchd 停止这些进程(对于未指定数量的用户)? (注意,以 root 身份运行的 launchctl 甚至看不到这些代理)。

(pid 文件,killall more-or-less-unique-executable-name 是最后的手段,我将这些解决方案作为最后的手段)

最佳答案

尝试这个:

LOGGEDUSERS=`who | grep console | awk '{ print $1 }'`
for CURRUSER in $LOGGEDUSERS
do
su -l $CURRUSER -c 'launchctl unload /Library/LaunchAgents/your.plist'
done

在我的卸载程序脚本中还有 killall -15 <app_name>在该代码之后(以防万一)

关于macos - 卸载包时停止 LaunchAgent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com