我想监视一个进程及其所做的一切(它给 SIGINT 的每个信号)。
有没有办法做到这一点?
我正在使用 Linux(确切地说是 Ubuntu 11)
如果您正在寻找命令行监控,strace unix 命令将完成所有这些以及更多工作。
它使用ptrace系统调用基础设施进行监控,这本身就更强大:另外还允许控制进程并与之交互。引用维基百科:
ptrace 由调试器(如 gdb 和 dbx)、跟踪工具(如 strace 和 ltrace)以及代码覆盖工具使用。专门的程序也使用 ptrace 来修补正在运行的程序,以避免未修复的错误或克服安全功能。它可以进一步用作沙箱和运行时环境模拟器(例如模拟非 root 软件的 root 访问)。
如果您想以编程方式而不是从命令行执行此监控,那么 ptrace 是您的解决方案。
strace应该可以工作,或者该页面上“其他工具”部分中列出的内容。