请指教,如何验证执行该过程的程序?
\n\n例如
\n\n以下命令 ( ps -ef ) 将查看 sendmail 进程是否正在运行
\n\n ps \xe2\x80\x93ef | grep sendmail\n root 9558 9544 019:05? 00:00:00/usr/sbin/sendmail-FCronDaemon-i-odi-oem-oi-t\nRun Code Online (Sandbox Code Playgroud)\n\n我想找到的是执行二进制文件/usr/sbin/sendmail的脚本
\n\n所以我的问题 \xe2\x80\x93 我需要将哪些标志添加到语法“ps \xe2\x80\x93ef”中,以便从 ps \xe2\x80\x93ef 获取完整的详细信息,包括运行该进程的程序
\n\n是否可以 ?
\n\n如果\n /etc/rc3.d/sendmail运行二进制文件/usr/sbin/sendmail
\n\n然后我期望从命令 ps \xe2\x80\x93ef \xe2\x80\xa6\xe2\x80\xa6看到/etc/rc3.d/sendmail路径。
\n您需要的是树输出并了解父进程。
\n\n例子pstree -a:
[~]# pstree -a\ninit\n \xe2\x94\x9c\xe2\x94\x80atd\n \xe2\x94\x9c\xe2\x94\x80atop -a -w /var/log/atop.log 600\n \xe2\x94\x9c\xe2\x94\x80cron\n \xe2\x94\x9c\xe2\x94\x80dbus-daemon --system --fork --activation=upstart\n \xe2\x94\x9c\xe2\x94\x80getty -8 38400 tty4\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80sshd\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80sshd\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80zsh\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80pstree -a\n \xe2\x94\x9c\xe2\x94\x80udevd --daemon\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80udevd --daemon\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80udevd --daemon\n \xe2\x94\x9c\xe2\x94\x80upstart-socket- --daemon\n \xe2\x94\x9c\xe2\x94\x80upstart-udev-br --daemon\nRun Code Online (Sandbox Code Playgroud)\n\n在这里您可以看到(我的 shell)有一个zsh正在运行 command的进程pstree。它zsh本身是由 process 启动的sshd。
这是相同的输出ps -AF:
root 10006 649 0 22329 3944 0 12:48 ? 00:00:00 sshd: root@pts/2\nroot 10041 10006 0 10355 5276 0 12:48 pts/2 00:00:00 -zsh\nroot 16465 10041 0 4538 1220 0 12:52 pts/2 00:00:00 ps -AF\nRun Code Online (Sandbox Code Playgroud)\n\n第二列是进程 id,第三列是父进程 id。您会看到 的父进程ps -AF是 shell 进程10041。您始终可以通过逐个父进程遍历进程来追溯到 init(进程 ID 1)。
在你的情况下,如果你想找到/etc/rc3.d/sendmail你可能需要从上往下走流程/usr/sbin/sendmail,直到你有我们下面的完整路径/etc/rc3.d。