Ps

如何列出所有後台程序?

  • May 9, 2022

是否可以使用命令列出所有正在執行的後台程序ps,或者是獲取後台程序列表的唯一選項jobs

“後台程序”通常是指終端作業控制。那將是程序組中的程序,這些程序組不是其控制終端設備的前台程序組。

procps實現 的Linux 系統上ps,您可以通過以下方式找到它們:

ps -eo pid,pgid,tpgid,args | awk 'NR == 1 || ($3 != -1 && $2 != $3)'

我們在哪裡尋找tpgid(終端前台程序組 id)不是-1的程序(具有控制終端的程序)並且它們的程序組 id 不是 tpgid。

請注意,它還將包括目前正忙於等待前台作業的 shell(包括如果在終端中在前台執行,則從其中執行該管道的 shell),因為它們會將這些作業置於前台,因此根據定義自己在後台。

引用自:https://unix.stackexchange.com/questions/701938