我怎么知道某个进程是否以逗号“ ps”或“ ps -ef”运行背景或前景?

时间:2019-06-01 07:43:29

标签: linux bash

我怎么知道进程是在逗号“ ps”还是“ ps -ef”中运行背景或前景?

我首先想到,当我输入ps -ef时,会有一个名为TTY的部分。

当我查看TTY列表时,大多数都是'?' (问号)

我想知道问号是否意味着进程正在运行背景

我想检查我是否正确!

如果没有,我想知道如何知道进程是在后台还是在前台

ps。 commnand这里没有使用“工作”

1 个答案:

答案 0 :(得分:0)

我喜欢这个问题,并且对于列出ps有关后台作业/过程的信息有一个扭曲的解决方案。

通过作业/后台进程的定义。它们是使用jobs -l命令的列表。

  1. 将后台作业pid存储在列表中

    echo "$(jobs -l)" | awk '{print $2}' > jobs.lst
    
  2. 将作业列表与当前进程相交

    ps -eo pid,args | grep -f jobs.lst
    

输出是ps -eo pid,args个后台作业的结果。

提供后台作业的id和命令行参数。

PS

我使用了ps输出选项-o仅列出了pidargs。根据自己的喜好将其更改,但请确保pid在其中。