我有一个 Python 脚本,它监视进程及其子进程的 CPU 和内存利用率。
该脚本不断检查进程或其子进程之一是否为Active
. 一旦进程及其所有子进程处于某种Inactive
状态,Python 脚本就会退出。
因此,我在这里针对特定流程面临的问题是-
- 进程开始
- 流程创建子流程-1
- 流程创建子流程2
- 流程创建子流程3(
Active
最迟时刻) - Terminate sub-process-3 (此时该流程及其所有子流程为
Inactive
) - 流程创建子流程4(
Active
最迟时刻)
因此,如果我的脚本检查进程或其中一个子进程是否Active
位于 [5],它将返回 false 并终止!
简而言之:进程及其所有子进程处于一种Inactive
状态的时间跨度很短(即子进程被杀死和新子进程尚未产生之间的时间)。如果我的脚本此时检查状态,它会返回 false,因为一切都处于非活动状态。
任何人都可以为我提供任何解决方案或解决这个问题吗?
while(bIsProcessActive == True):
bIsProcessActive = False
if (proc.is_running() and proc.status != psutil.STATUS_ZOMBIE):
bIsProcessActive = True
cpu_usage = proc.get_cpu_percent(interval = 2)
memory_usage = proc.get_memory_info().rss
for child in proc.get_children():
if child.is_running() and child.status != psutil.STATUS_ZOMBIE:
// Add to memory and CPU usage of parent process
if bIsProcessActive == False and childutilization[0] == True:
bIsProcessActive = True