如何通过命令“ps”或“ps -ef”知道进程是在后台运行还是在前台运行?
我首先想到的是,当我输入 ps -ef 时,有一个名为 TTY 的部分。
当我查看 TTY 列表时,大多数都是“?” (问号)
我想知道这个问号是否意味着进程正在后台运行
我想验证一下我的想法是否正确!
如果没有,我想知道如何知道进程是在后台运行还是前台运行
ps。这里没有使用命令“jobs”
最佳答案
我喜欢这个问题,并且有一个扭曲的解决方案来列出有关后台作业/进程的 ps
信息。
根据作业/后台进程的定义。它们是带有 jobs -l
命令的列表。
将后台作业 pid 存储在列表中
echo "$(jobs -l)" | awk '{print $2}' > jobs.lst
将作业列表与当前进程相交
ps -eo pid,args | grep -f jobs.lst
输出是后台作业的 ps -eo pid,args
结果。
为后台作业提供 id 和命令行参数。
附注
我使用ps
输出选项-o
仅列出pid
和args
。根据您的喜好更改它,但请确保 pid
存在。
关于linux - 我如何知道命令 "ps"或 "ps -ef"中的进程是在后台运行还是在前台运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56404808/