Linux

Linux的程序監視器等效?

  • July 17, 2020

是否有 Unix/Linux 等效的Process Monitor,無論是 GUI 還是 CUI?

如果它有所作為,我正在研究 Ubuntu,但如果其他系統(Mac、其他 Linux 變體,如 Fedora 等)也有相同的版本,那麼了解其中的任何一個也會很有用。

編輯:

Process Monitor用於監控系統呼叫(例如文件創建或寫入),而 Process Explorer用於監控程序狀態(類似於 System Monitor)。我要的是前者,而不是後者。:-)

控制台待機是top,但也有像我最喜歡的替代方案htop,可以為您提供更多的顯示靈活性,並允許您對程序進行更多操作。

更適合在腳本中使用的互動較少的視圖將是ps程序及其所有親屬。

**編輯:**根據您澄清的問題,您可能會注意到strace處理由給定程序進行的監視系統呼叫,包括所有讀寫操作和 os 函式呼叫。您可以在要跟踪或附加到正在執行的程序的程序之前在命令行上啟動它,方法是點擊shtop.

所有程序監視器的鼻祖是top,並且呼叫了許多系統監視工具top。例如,iotop監視磁碟 I/O、atop一堆系統資源、powertop功耗。

如果您需要更詳細的資訊,預設情況下不會跟踪。要查看特定程序正在做什麼,請呼叫strace它。例如,如果您只對文件系統訪問感興趣:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

strace特定於 Linux,但其他系統也有類似的工具:truss在 Solaris 上,ktracedtrace在 *BSD 下等。

要查看特定文件或特定目錄或目錄樹中發生的情況,請使用inotify 工具

inotifywait -m .

同樣,該工具是特定於 Linux 的,但大多數其他 unice 具有類似的系統,例如*BSD 下的kqueue和FAM(最初來自 SGI,但現在在許多系統上作為 API 提供)。

要查看 Linux 下的所有系統呼叫,可以使用審計子系統。它是相對較新的,關於該主題的文獻不多;搜尋auditctl或閱讀auditctl手冊頁。該站點上有幾個範例:跟踪文件訪問跟踪流程執行

引用自:https://unix.stackexchange.com/questions/13555