如何找到从特定终端调用的处理函数?

如何找到从特定终端调用的处理函数?

我有时会使用终端在后台启动进程。例如:

$ 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 psUbuntu 在线手册页。有一些非常有趣且非常有用的ps组合可以实现。我从一些例子中获得了启发在本文中,并继续尝试不同的组合。

相关内容