找出哪个程序运行另一个程序

时间:2012-06-07 03:51:20

标签: linux bash shutdown

我有一台NAS运行在一个看似Redhat Linux的限制版本上。我按照指示进行破解,这样我就可以进行shell访问,这对我来说是一个很大的帮助。我也进行了一些修改,其他人已经完成了修改,除了一个问题,它们似乎都运行良好。

不知何故,每隔22天,系统就会关闭。我使用运行ps的脚本来发现实际上已经调用了shutdown,但我不知道程序调用了什么。

如果我重命名/ sbin / shutdown,那么我可以写一个脚本来替换它。但我喜欢的最重要的信息是程序正在调用shutdown。

如果一个程序运行我的脚本(phony / sbin / shutdown),我怎样才能找到一个叫做我脚本的程序?我希望能够从脚本中确定首先调用脚本的程序。如果它更容易,我总是可以使用Perl脚本而不是bash脚本。

2 个答案:

答案 0 :(得分:3)

在Bash,ps -p $$ -o ppid=。输出是父进程的pid(调用进程)。拥有父pid,您可以从/proc/<pid>/cmdlinemore on procfs)读取其命令行。

答案 1 :(得分:3)

最简单的可能只是在调用脚本时转储ps afx的完整输出。这将以树格式显示所有进程(包括您的脚本)的列表,不仅显示调用脚本的内容,还显示 的内容以及正在运行的内容。