2012-08-05 55 views
3

例如,在linux-machine中有這麼多的進程。 每個人都可以使用系統調用,但通常很少使用。 那麼,有一種工具或方式可以顯示何時使用系統調用以及哪個進程是關聯的?是否可以實時監控Linux下的所有系統調用?

+0

http://en.wikipedia.org/wiki/Ptrace – 2012-08-05 22:26:07

+0

ptrace的()是一個系統調用本身,而不是一個工具。 – favoretti 2012-08-05 22:27:43

+0

我不知道如何跟蹤所有進程(系統範圍)的svc,但是'strace'是我最喜歡的跟蹤特定進程的工具。 – 2012-08-05 22:29:54

回答

5

您可以使用各種工具,如strace,ltrace和許多其他工具,但我不確定是否要同時跟蹤所有進程。

通常情況下,您會附加到一個感興趣的進程並關注其系統調用。

+0

那麼,我可以使用strace進行一個過程。 那麼如果用戶正在創建一個新文件,我可以通過這種方法看到與他的創建有關的系統調用嗎? – user840718 2012-08-05 22:43:32

+1

它不是用戶,而是一個*進程*,它確實創建了該文件。如果你連接到*那個*進程,那麼,是的......如果你只想監視FS,還有其他的工具。 – 2012-08-05 22:46:02

+0

是的,我的目標是在實時模式下監視FS,用於特定文件而不是處理。 因此,我想到系統調用是因爲內核運行的基本指令。 – user840718 2012-08-05 22:48:13

1

您可以使用Linux內核審覈子系統。

例如,要看到的程序調用的sshd(PID - 12345)進行的所有的系統調用:

# auditctl -a entry,always -S all -F pid=12345 
相關問題