ちょうど誰かが私を助けてくれるのだろうかと思っています。私が抱えている問題は、os.fork()がいくつかの情報を取得してファイルに送ることですが、フォークプロセスが動作していないかどうかを確認することです。fork()プロセスが終了したかどうかを確認するPython
import sys
import time
import os
import re
ADDRESS = argv[1]
sendBytes = argv[2]
proID2 = os.fork()
if proID2 == 0:
os.system('ping -c 20 ' + ADDRESS + ' > testStuff2.txt')
os._exit(0)
print proID2
finn = True
while finn == True:
time.sleep(1)
finn = os.path.exists("/proc/" + str(proID2))
print os.path.exists("/proc/" + str(proID2))
print 'eeup out of it ' + str(proID2)
os.path.exists()は、使用するのが適切でない可能性があります。
ありがとうございました。
/proc/### /の存在を確認するのは良い解決策ではありません。 PIDがどのように問題になるかは定義されていません。あなたの子供が終了した後、次のプロセスが開始されました(あなたのアプリケーションから完全に独立しているかもしれません)*同じPIDを得ることができます。典型的には、それらはターンアラウンドで発行されるため、現在のカーネルではソリューションが常に最もよく機能しますが、将来のカーネルバージョンやコンピュータをスリープモードにするなどの特別な場合や、ネットワークの遅れや応答しないサーバーなどのために、アプリケーションがかなりの時間停止しています。 – Alfe