在此会话中启动的进程

在此会话中启动的进程

我打开了一个终端会话并启动了一些进程&。当我尝试关闭终端窗口时,它警告我仍有作业在后台运行。

我可以看到正在运行的进程ps,但我如何知道哪些进程是通过此会话启动的?

答案1

jobs -l
列出活动作业的进程 ID

答案2

如果要查找从当前bash会话启动的所有后台进程,可以使用jobs的内置函数bash

help jobs

jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
Display status of jobs.

Lists the active jobs.  JOBSPEC restricts output to that job.
Without options, the status of all active jobs is displayed.

另一方面,如果您想查找从此bash会话启动的所有进程,您可以使用该$$变量bash,该变量将为您提供当前实例的 PID bash。然后您可以解析命令的输出ps -ef以查找父进程 ID (PPID) 为的所有进程$$

ps -ef | grep -P "^[^ ]+\s+[^ ]+\s+$$\s"

答案3

运行ps -auxf以查看后台进程是哪些 shell 的子进程。

相关内容