Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 是否可以在linux下实时监控所有系统调用?_C_Linux_Linux Kernel_System Calls - Fatal编程技术网

C 是否可以在linux下实时监控所有系统调用?

C 是否可以在linux下实时监控所有系统调用?,c,linux,linux-kernel,system-calls,C,Linux,Linux Kernel,System Calls,例如,在linux机器中有很多进程。 每个都可以使用一个系统调用,但通常很少使用。 嗯,有一种工具或方式可以显示何时使用系统调用以及哪个进程与之关联?您可以使用各种工具,例如strace、ltrace和许多其他工具,尽管我不确定您是否希望同时跟踪所有进程 通常,您会附加到一个感兴趣的进程并跟踪其系统调用。您可以使用Linux内核审计子系统 例如,要查看名为sshd(pid-12345)的程序进行的所有系统调用: ptrace()本身是一个系统调用,而不是一个工具。我不知道如何跟踪所有进程(系统范

例如,在linux机器中有很多进程。 每个都可以使用一个系统调用,但通常很少使用。
嗯,有一种工具或方式可以显示何时使用系统调用以及哪个进程与之关联?

您可以使用各种工具,例如
strace
ltrace
和许多其他工具,尽管我不确定您是否希望同时跟踪所有进程


通常,您会附加到一个感兴趣的进程并跟踪其系统调用。

您可以使用Linux内核审计子系统

例如,要查看名为sshd(pid-12345)的程序进行的所有系统调用:


ptrace()本身是一个系统调用,而不是一个工具。我不知道如何跟踪所有进程(系统范围)的svc,但是,
strace
是我最喜欢的跟踪特定进程的工具。@favoretti:是的。如果你点击链接,你会看到这是第一句话。好吧,我可以用strace做一个过程。如果一个用户正在创建一个新的文件,我能看到与这个方法创建相关的系统调用吗?真正创建这个文件的不是用户,而是一个过程。如果你参与了这个过程,那么,是的。。。如果你只想监控FS,还有其他的工具。是的,我的目标是在实时模式下监控FS,针对特定的文件,而不是进程。因此,我考虑syscall,因为它是内核运行的基本指令。然后你可以使用
lnotify
,或者其他更奇特的东西,比如splunk FS change monitor():@user840718,然后你应该使用systemtap和oprofile,它们可以跟踪和分析整个系统,不是像strace那样只有一个过程。
# auditctl -a entry,always -S all -F pid=12345