我有时会使用终端在后台启动进程。例如:
$ matlab &
几个小时后,我记不清从哪个终端启动了 matlab,即哪个终端关闭不安全。
如何在终端中检查它产生了哪些子进程(如果有)?
答案1
该jobs
命令将列出从您输入的 shell 启动的所有后台作业。
答案2
可能是最好的方法(除了丹尼斯的回答)是使用众所周知且广泛使用的命令:
ps -e -o pid,ppid,args --forest
然后,您可以快速查看启动了各个进程的终端的 pid 以及进程本身:
3494 3490 \_ gnome-pty-helper
3495 3490 \_ bash
3566 3495 | \_ evince
3578 3490 \_ bash
3684 3578 | \_ man ps
3693 3684 | \_ pager -s
3709 3490 \_ bash
3801 3709 \_ /usr/bin/python /usr/bin/meld
3871 3709 \_ ps -e -o pid,ppid,args --forest
对于特定终端,请ps -T
在该终端中输入:
PID SPID TTY TIME CMD
3709 3709 pts/3 00:00:00 bash
3801 3801 pts/3 00:00:00 meld
3882 3882 pts/3 00:00:00 ps
有关更多信息ps
,请参阅man ps
或Ubuntu 在线手册页。有一些非常有趣且非常有用的ps
组合可以实现。我从一些例子中获得了启发在本文中,并继续尝试不同的组合。