[英]List All Loaded/Unloaded or Both Launch Agents On macOS
我正在尝试使用以下命令计算现在加载了多少个启动代理
find /System/Library/Launch* /Library/Launch* ~/Library/Launch* -name '*.plist' -exec sh -c '/usr/libexec/PlistBuddy -c "Print Label" {} && echo {}' ';' | grep -wf <(launchctl list | grep -o "\S\+\..*$") -A1
grep -B 1 -A 1 "active count = 1$" <<< "$(launchctl dumpstate)"
但它没有列出我正在寻找的那个。 这是正确的吗?
使用launchctl您可以列出所有正在运行的代理和守护进程,如下所示:
launchctl list
和
sudo launchctl list
请注意,这两个是不同的命令。 奇怪的是,运行sudo launchutil list
打印出根守护进程,并且只打印出根守护进程。
如果您在终端中运行命令,您需要先运行非 sudo 版本,因为如果不这样做,sudo 版本将创建一个 root 会话,这将强制版本 #1 无论如何都具有 root 权限!
如果您想找到此类代理或守护程序的文件路径,这可能会有所帮助。
好的,我不知道我是如何在你的问题的大标题中遗漏了“卸载”这个词的,但是......这里是守护进程/代理喜欢隐藏的目录(从launchctl的手册页复制):
FILES
~/Library/LaunchAgents Per-user agents provided by the user.
/Library/LaunchAgents Per-user agents provided by the administrator.
/Library/LaunchDaemons System wide daemons provided by the administrator.
/System/Library/LaunchAgents OS X Per-user agents.
/System/Library/LaunchDaemons OS X System wide daemons.
我有你同样的问题,这篇文章非常有帮助。 我建议通读一遍,但这里有一个相关的片段:
虽然用户枚举所有登录项不是一件简单的事情,但管理员可以通过解析以下文件(如果存在)来做一些额外的工作:~/Library/ApplicationSupport/com.apple.backgroundtaskmanagementagent/backgrounditems.btm
解析该文件比使用您喜欢的编辑器打开它更复杂。 文章链接到粘贴箱,但此github 存储库是一站式商店。 尽管如此,这篇文章还是有很大帮助的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.