ps 没有显示所有进程

Loc*_*ost 8 scripting process ubuntu ps

script在启动终端后立即使用该命令,它开始记录我当前的会话,但是当我之后使用ps命令时,它只显示两个进程,bash一个用于ps自己,一个用于自己,但它没有显示脚本命令的任何进程在后台运行,为什么会这样?以更一般的方式说,实际上我从未ps在我的终端上看到显示超过 2 个进程的命令,我的 shell 或终端设置有问题吗?我目前正在使用 Ubuntu。

Ste*_*itt 9

您的终端或外壳没有任何问题。默认情况下,ps显示与运行它的用户具有相同有效用户标识符并与同一终端关联的进程。这通常会导致只显示两个进程:当前 shell 和ps它自己。如果有任何与当前终端关联的后台进程,它们也会显示出来;你可以通过运行看到这个

sleep 120 &
ps
Run Code Online (Sandbox Code Playgroud)

要查看所有进程,请运行

ps -e
Run Code Online (Sandbox Code Playgroud)

还有许多其他进程选择标志,man ps有关详细信息,请参阅您的系统。

当你运行时script,它会分配一个新的终端并启动一个新的 shell;所以psinsidescript运行在不同的终端上(即使它在系统上的同一个终端窗口中,或者在同一个虚拟控制台上)。这就是为什么你看不到script. 您可以通过在运行tty之前和之后运行来看到这种情况script:您会看到它输出两个不同的值。