2012-12-18 61 views
4

可能重複:
Who 「Killed」 my process and why?過程殺手識別

一java程序通過我的server.In運行我發現了日誌,我的服務器自動重新啓動(邏輯是有,如果進程死亡,自動啓動)。在這裏,我不知道誰是殺害我的Java process.May是一些腳本,或什麼...不是關於它的想法。

有什麼辦法,找出誰是兇手的過程。

我的工作Linux機器上。

+0

你試過問這個在[unix.stackexchange.com(HTTP:// unix.stackexchange.com/)? – jlordo

+0

http://stackoverflow.com/questions/726690/who-killed-my-process-and-why – opi

回答

1

嘗試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) 
}