有没有一种方法可以查询Linux进程表中进程的状态,以便在执行查询时演示进程是否正在运行或被阻塞?我的目标是从进程或程序的“外部”完成这个操作,因为我希望从操作系统进程的角度来理解这个问题,但任何想法都受欢迎!
以下是Python代码,用于阻止进程:
以下是“ps -ef”命令输出的进程ID列表:
当这些'ls'命令正在处理时,我想展示哪些进程正在阻塞,以及其他进程的状态。这个问题旨在成为一个工具,帮助我学习使用Python进行多进程编程时了解状态,因此我认为PID 14309是阻塞的,PID 14442是非阻塞的,尽管我可能错了。这就是为什么能够查看或测试所有显示的PID对我很有帮助。
感谢受人尊敬的用户“ubuntu”及其对此的回复: Blocking and Non Blocking subprocess calls 提供了起始代码。
在这种情况下,操作系统是Ubuntu,但任何debian或操作系统的注释都将有所帮助。
以下是Python代码,用于阻止进程:
import subprocess
proc = subprocess.call('ls -lRa /', shell=True)
以下是非阻塞进程的Python代码:
import subprocess
proc = subprocess.Popen('ls -lRa /', shell=True)
以下是“ps -ef”命令输出的进程ID列表:
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
user1 14442 1 0 15:33 pts/4 00:00:00 /bin/sh -c ls -lRa /
user1 14443 14442 6 15:33 pts/4 00:00:01 ls -lRa /
当这些'ls'命令正在处理时,我想展示哪些进程正在阻塞,以及其他进程的状态。这个问题旨在成为一个工具,帮助我学习使用Python进行多进程编程时了解状态,因此我认为PID 14309是阻塞的,PID 14442是非阻塞的,尽管我可能错了。这就是为什么能够查看或测试所有显示的PID对我很有帮助。
感谢受人尊敬的用户“ubuntu”及其对此的回复: Blocking and Non Blocking subprocess calls 提供了起始代码。
在这种情况下,操作系统是Ubuntu,但任何debian或操作系统的注释都将有所帮助。