Просто интересно, может ли кто-нибудь помочь мне. Проблема, с которой я сталкиваюсь, заключается в том, что я os.fork(), чтобы получить несколько бит информации и отправить их в файл, но проверяя, не работает ли процесс вилки.Python проверяет, завершен ли процесс fork()
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