詞彙表/出問題的時候

PID

又稱:程序ID

簡短回答

PID即程序ID,是macOS指定給每個執行中程序、用來識別它的數字。執行中的程序不會共用同一個PID,但程序結束後,它的號碼可能會被重複使用。

活動監視器會用獨立的一欄顯示PID。kill、sample和lsof等「終端機」指令會用PID來確認你指的是哪個程序,因為好幾個程序可能同名。

在macOS上,PID 0是kernel_task,PID 1是launchd,也就是啟動系統其餘部分的第一個程序。你打開的App會拿到較大的號碼,而且每次啟動都會拿到新的PID。

如何找出App的PID

在活動監視器的列表中找到該App,查看「PID」欄。如果這一欄被隱藏了,請選擇「顯示方式」>「直欄」>「PID」。

在「終端機」中,pgrep -l Safari會列出符合的程序及其PID。ps -p <PID> -o pid,ppid,comm會顯示某個程序的名稱及其父程序的PID。

父程序PID能告訴你什麼

除了第一個程序之外,每個程序都有一個父程序,也就是啟動它的那個程序。在活動監視器中選擇「顯示方式」>「所有程序(依階層排列)」,就能以樹狀結構看到這些父子關係。

如何在「終端機」中找出PID

「終端機」中的程序名稱可能和App名稱不同。許多App會執行名稱類似「App Helper (Renderer)」的輔助程序,每個都有自己的PID。

  1. 從「應用程式」>「工具程式」打開「終端機」。
  2. 執行pgrep -lx Finder,取得名稱剛好是Finder的程序PID。拿掉x,就能比對名稱的一部分。
  3. 如果一個App有多個程序,請執行pgrep -lf "Google Chrome",以完整的指令列進行比對。
  4. 要查看你自己的shell的PID,請執行echo $$。

如何找出某個PID屬於哪個App

錯誤訊息和記錄檔常常只提到PID而沒有名稱。要查出來,請執行ps -p <PID> -o pid,ppid,user,command。它會顯示程式的完整路徑、執行它的使用者,以及其父程序的PID。

在活動監視器中,按一下「PID」欄位標題依此排序,然後捲動到這個號碼。按兩下該程序打開它的資訊視窗,裡面也會顯示它的父程序。

如果ps沒有輸出任何內容,代表這個程序已經結束了。

拿到PID可以做什麼

先用ps -p <PID>確認名稱。PID會被重複使用,所以你先前拷貝的號碼現在可能屬於另一個程序。

  • kill <PID>要求程序結束。kill -9 <PID>立即終止它。
  • sample <PID> 5記錄程序5秒內在做什麼。
  • lsof -p <PID>列出它開啟的檔案和網路連線。
  • lsof -a -p <PID> -d cwd顯示它執行時所在的檔案夾。
  • top -pid <PID>顯示它即時的CPU和記憶體使用量。按q離開。

什麼時候該用PID而不是名稱

依名稱運作的指令,例如killall Safari或pkill Safari,會作用在所有符合的程序上。預設情況下,killall會傳送結束訊號給你擁有的所有符合程序,而pkill會比對名稱中包含你所輸入文字的任何程序。

對單一App來說這沒問題,但當很多程序同名時就有風險。一個瀏覽器可能執行數十個輔助程序,而好幾個node或python副本可能分屬不同的專案。PID只會指向一個確切的程序,所以當你只想停止其中一個、讓其餘的繼續執行時,就用PID。

如果一定要用名稱,請先預覽符合的結果。pgrep -l <name>會列出pkill將作用的程序,killall -d <name>會顯示killall將做什麼,但不會實際傳送任何訊號。

大家常問的問題

活動監視器中的PID是什麼意思?

PID代表程序ID。它是每個執行中程序獨有的號碼,用來區分各個程序,也用來在「終端機」指令中指定程序。

App的PID會一直不變嗎?

只在它執行期間不變。結束並重新打開App後,它就會拿到新的PID。

Mac上的PID 1是什麼?

PID 1是launchd,也就是在macOS上啟動並管理其他程序的程序。絕對不要結束它。

如何在Mac上依PID終止程序?

在「終端機」中執行kill <PID>。如果它不結束,kill -9 <PID>會立即終止它,但可能會遺失尚未儲存的資料。

兩個程序可以有相同的PID嗎?

不能同時存在。舊程序結束後,它的PID可以指定給新的程序。

活動監視器中的PID 0是什麼?

PID 0是kernel_task,代表macOS核心。它無法結束。

相關詞條

逐步教學:Claude Code使用太多記憶體。

從Windows轉過來的嗎? 請參閱Mac版工作管理員,或最好用的活動監視器替代方案。也可以瀏覽詞彙表中的所有詞條。