簡體   English   中英

在 macOS 上列出所有加載/卸載或同時啟動代理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM