我有一个 NAS,运行在 Redhat Linux 的有限版本上。我按照指示破解了它,这样我就可以访问 shell,这很有帮助。我还做了一些修改,其他人也做过修改,除了一个问题之外,它们似乎都工作得很好。
不知何故,每隔 22 天,系统就会关闭一次。我用一个脚本运行ps发现确实调用了shutdown,但是不知道是什么程序调用了shutdown。
如果我重命名 /sbin/shutdown,那么我可以编写一个脚本来替换它。但我想要的最重要的信息是哪个程序正在调用关闭。
如果某个程序运行我的脚本(假冒的 /sbin/shutdown),我如何找出哪个程序调用了我的脚本?我希望能够从脚本内部确定哪个程序首先调用了该脚本。如果更容易的话,我总是可以使用 Perl 脚本而不是 bash 脚本。
在巴什中,ps -p $$ -o ppid=
。输出是父进程(调用进程)的 pid。有了父 pid,您可以从以下位置读取其命令行/proc/<pid>/cmdline
(有关 procfs 的更多信息 http://en.wikipedia.org/wiki/Procfs#Linux).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)