可能重复:
谁“杀了”我的过程,为什么?
一个Java进程正在我的服务器上运行。在日志中,我发现我的服务器自动重启(逻辑在那里,如果进程死亡,自动启动)。 在这里,我不知道是谁在杀死我的java进程。可能是一些脚本,或任何东西…不知道。
有什么方法可以找出谁是过程杀手。
我正在Linux机器上工作。
尝试SystemTap :
apt-get install systemtap
将此代码保存到sigmon.stp文件中:
# Track when a specific process ID receives a specific signal. For example, # when process ID 31994 receives a SIGKILL signal. # # Example command line: # # stap -x 31994 sigmon.stp SIGKILL # # Example output: # # SPID SNAME RPID RNAME SIGNUM SIGNAME # 5609 bash 31994 find 9 SIGKILL # probe begin { printf("%-8s %-16s %-5s %-16s %6s %-16s\n", "SPID", "SNAME", "RPID", "RNAME", "SIGNUM", "SIGNAME") } probe signal.send { if (sig_name == @1 && sig_pid == target()) printf("%-8d %-16s %-5d %-16s %-6d %-16s\n", pid(), execname(), sig_pid, pid_name, sig, sig_name) }