显示已停止和正在运行的进程的 Linux 命令?

Vim*_*mzy 5 c linux process execvp

我目前正在我的一个 c 程序中执行以下 Linux 命令以显示正在运行的进程。无论如何我可以修改它以显示停止的进程和正在运行的进程吗?

char *const parmList[] = {"ps","-o","pid,ppid,time","-g","-r",groupProcessID,NULL};
execvp("/bin/ps", parmList);
Run Code Online (Sandbox Code Playgroud)

Pab*_*o A 8

jobs -s list最高进程为SIGTSTP,noSIGSTOP主要区别SIGSTOP不可忽视的。

您可以SIGTSTP使用^Z或来自其他外壳的进程使用kill -TSTP PROC_PID,然后使用 列出jobs

但是如何列出收到SIGSTOP 的PID呢?获得这个的一种方法

 ps -e -o stat,command,pid | grep '^S '
Run Code Online (Sandbox Code Playgroud)

我发现这两个非常有用,可以停止/继续一些进程(通常是浏览器):

kill -STOP $(pgrep procName)
kill -CONT $(pgrep procName)
Run Code Online (Sandbox Code Playgroud)

或与 killall

killall -STOP procName
killall -CONT procName
Run Code Online (Sandbox Code Playgroud)


vis*_*071 0

ps -e 列出所有进程。

jobs列出当前停止或在后台的所有进程。

因此,您可以jobs使用以下命令运行命令execvp

char *arg = {"jobs", NULL};
execvp(arg[0], arg);
Run Code Online (Sandbox Code Playgroud)