从命令提示符启动脚本时,外壳程序将为该脚本生成一个子进程。我想以ps
树样式输出显示终端级进程与其子级之间的关系。
我怎样才能做到这一点?
到目前为止我尝试过的
文件: script.sh
#!/bin/bash
ps -f -p$1
然后,我从命令行调用脚本,并传入终端外壳的进程ID:
$ ./script.sh $$
我想要的是这样的
- 顶层(终端)shell过程
- ./script.sh
ps
命令本身的过程
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
我得到的是:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
@muru我尝试过
—
the_velour_fog
pstree
并且无法获得有意义的输出,我认为pstree $$
只是产生的bash--pstree
并不是我想要的。
您想要的不是什么?您已替换了脚本,然后
—
muru
ps
,除了,您还希望看到pstree
什么?
@muru您的权利在技术上是我想要的,但是太小了。即,如何确定没有ps的PID的情况下正在查看的进程,如ps将其显示为表输出?
—
the_velour_fog
pstree -p $$
?或者,如果您希望更多的命令行显示,请参阅pstree -pa $$
。或者,如果您要显示所有正在运行的父进程,请pstree -psa $$
。
pstree
?