Linux的程序監視器等效?
是否有 Unix/Linux 等效的Process Monitor,無論是 GUI 還是 CUI?
如果它有所作為,我正在研究 Ubuntu,但如果其他系統(Mac、其他 Linux 變體,如 Fedora 等)也有相同的版本,那麼了解其中的任何一個也會很有用。
編輯:
Process Monitor用於監控系統呼叫(例如文件創建或寫入),而 Process Explorer用於監控程序狀態(類似於 System Monitor)。我要的是前者,而不是後者。:-)
控制台待機是
top
,但也有像我最喜歡的替代方案htop
,可以為您提供更多的顯示靈活性,並允許您對程序進行更多操作。更適合在腳本中使用的互動較少的視圖將是
ps
程序及其所有親屬。**編輯:**根據您澄清的問題,您可能會注意到
strace
處理由給定程序進行的監視系統呼叫,包括所有讀寫操作和 os 函式呼叫。您可以在要跟踪或附加到正在執行的程序的程序之前在命令行上啟動它,方法是點擊s
在htop
.
所有程序監視器的鼻祖是
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 上,ktrace
或dtrace
在 *BSD 下等。要查看特定文件或特定目錄或目錄樹中發生的情況,請使用inotify 工具。
inotifywait -m .
同樣,該工具是特定於 Linux 的,但大多數其他 unice 具有類似的系統,例如*BSD 下的kqueue和FAM(最初來自 SGI,但現在在許多系統上作為 API 提供)。
要查看 Linux 下的所有系統呼叫,可以使用審計子系統。它是相對較新的,關於該主題的文獻不多;搜尋
auditctl
或閱讀auditctl
手冊頁。該站點上有幾個範例:跟踪文件訪問、跟踪流程執行。