标签: linux
在我的系统上,某些进程总是退出,现在我不知道它们是自己退出还是有人杀死他们。
我可以记录Linux进程退出信息吗?
例如,如果我有一个进程被另一个进程杀死,我可以在诸如xx pid killed yy pid之类的日志中看到一个终止记录,或者如果我的进程退出,则可以看到XX PID exit by self。
xx pid killed yy pid
XX PID exit by self
答案 0 :(得分:0)
Linux具有进程记帐功能-acct(5)。
例如,如果使用accton命令将其打开,则Linux将在每次退出进程时将一些进程信息记录到文件中。该信息确实在ac_flags字段中记录了信号死亡(尽管这不能区分引起deatH的信号),并且看起来您可以从中获取完整的退出信息(从wait(2)开始) ac_exitcode字段。不幸的是,发运的dump-acct命令没有显示它,但是我想如果您从C解析文件,则可以显示它。
accton
ac_flags
ac_exitcode
dump-acct
除此功能外,在基本的UNIX POSIX系统中,只有进程的父级才能获取其子级的退出信息(ptrace也是,但是基于ptrace的跟踪器的行为类似于第二个父级)
ptrace