Solo me pregunto si alguien podría ayudarme. El problema que estoy teniendo es que yo os.fork() obtenga varios bits de información y los envíe a un archivo, pero verificando si el proceso de fork no está funcionando.Python comprobando si un proceso de fork() está terminado
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)
Creo que os.path.exists() es quizás no lo correcto.
Gracias.
Verificar la existencia de/proc/###/no es una buena solución. Cómo los PID son problemas no está definido. Después de que su hijo termine, el siguiente proceso iniciado (que puede ser totalmente independiente de su aplicación) * puede * obtener el mismo PID. Normalmente, se emiten en un cambio de tendencia, por lo que con kernels actuales su solución funcionará muy probablemente todo el tiempo, pero no puede estar seguro acerca de futuras versiones de kernel o en casos especiales como cuando pone la computadora en modo de suspensión, o en caso de que su la aplicación se está estancando por bastante tiempo debido al retraso de la red, un servidor que no responde o similar. – Alfe