プロセスとそのサブプロセスを監視して、プロセスによる CPU とメモリの使用率を監視する Python スクリプトがあります。
スクリプトは、プロセスまたはそのサブプロセスの 1 つが であるかどうかを継続的にチェックしますActive
。プロセスとそのすべてのサブプロセスが特定のInactive
状態になると、Python スクリプトは終了します。
したがって、特定のプロセスでここで直面している問題は-
- プロセス開始
- プロセスはサブプロセス-1 を作成します
- プロセスはサブプロセス 2 を作成します
- プロセスはサブプロセス-3 を作成します (
Active
最新の時点で) - サブプロセス 3 を終了します(この時点で、プロセスとそのすべてのサブプロセスは終了します
Inactive
) 。 - プロセスはサブプロセス 4 を作成します (
Active
最新の時点で)
したがって、スクリプトがプロセスまたはサブプロセスの 1 つが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