有没有办法在 Linux 进程表中查询进程的状态,以便能够证明在执行查询时进程是正在运行还是被阻塞?我的目标是从进程或程序的“外部”执行此操作,因为我希望从操作系统进程的角度理解这一点,但欢迎提出任何想法!
这是python代码阻塞的过程:
import subprocess
proc = subprocess.call('ls -lRa /', shell=True)
Run Code Online (Sandbox Code Playgroud)
这是非阻塞进程的python代码:
import subprocess
proc = subprocess.Popen('ls -lRa /', shell=True)
Run Code Online (Sandbox Code Playgroud)
这是显示进程 ID 的“ps -ef”的输出:
UID PID PPID C STIME TTY TIME CMD
user1 14308 4145 0 15:30 pts/2 00:00:00 python call_b.py
user1 14309 14308 0 15:30 pts/2 00:00:00 /bin/sh -c ls -lRa /
user1 14310 14309 15 15:30 pts/2 00:00:30 ls -lRa /
root 14313 2 0 15:31 ? 00:00:00 [kworker/2:0]
user1 14318 2476 0 15:32 pts/4 00:00:00 -bash …Run Code Online (Sandbox Code Playgroud)