題:
如何在“活動監視器”中將服務與流程區分開?
craig
2018-12-14 20:02:40 UTC
view on stackexchange narkive permalink

是否可以確定活動監視器中列出的條目是服務(守護程序)還是進程(應用程序)?

示例:

  • Firefox(應用程序)
  • com.apple.audio.SandboxHelper(守護程序?)

在OS X中,這些術語(我用的不是很寬泛)是否有很好的定義?

一旦知道了區別,您想做什麼?服務通常是父申請流程必不可少的。
我只是想了解體系結構。
請您為[請問一個新問題](https://apple.stackexchange.com/questions/ask)*是否需要以特定方式構建應用程序(例如,沒有UI,實現某些接口)以便可以使用*“詢問”當分別問每個問題時,“不同”最有效。隨時在您的新問題中提及其他問題。
https://apple.stackexchange.com/questions/345640/do-applications-in-os-x-need-to-be-built-in-specific-way-to-be-used-as-a-service
二 答案:
Graham Miln
2018-12-14 20:15:31 UTC
view on stackexchange narkive permalink

分層的所有進程

活動監視器可以顯示流程層次結構:

Activity Monitor.app>視圖(菜單)>所有進程,按層次排列

分組顯示了由另一個進程啟動的那些進程。通常,子進程將是父進程的服務。在macOS上,其中許多子進程將是XPC實例。

服務就是流程

在macOS上,守護進程是進程,服務是進程。在您的示例 com.apple.audio.SandboxHelper 中,這是 XPC服務

為什麼所有進程(“ kernel_task”除外)都作為“ launchd”的子代運行?
這將是一個很好的[新問題](https://apple.stackexchange.com/questions/ask)。macOS的根進程是“啟動”的,而Apple已決定通過它啟動幾乎所有進程。我懷疑它有很多好處,但是可以在一個新問題中進行討論。
https://apple.stackexchange.com/questions/345639/why-do-all-processes-except-kernel-task-run-as-children-of-launchd
Allan
2018-12-14 20:09:15 UTC
view on stackexchange narkive permalink

從技術上講,任何被加載和執行的東西都是一個過程;所以服務就是一個過程。

服務是對某些內容的細微定義,這些內容被加載以提供DHCP或DNS之類的服務。

總結的另一種方法是所有服務都是進程,但並非所有進程都是服務。一個例子就是Firefox,它是一個過程,而不是服務-它是一個應用程序。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...