Quiero ejecutar un script seguro para subprocesos en Ruby que llame a un programa externo, luego comprueba el estado de salida de ese programa externo. ¿Cuál es la mejor manera de hacerlo? Hasta ahora, he estado revisando $?
, pero creo que estoy obteniendo una condición de carrera con otras partes del programa.Proceso externo a prueba de roscas en ruby, más comprobación de exitstatus
Aquí hay un código de ejemplo:
Thread.new do
`external_program`
if $?.exitstatus == 0
# it worked.
else
# it didn't work.
end
end
Idealmente, me gustaría hacer algo como
Process.new(`external_program`).exitstatus
para que el exitstatus
estuvo inextricablemente unido a que proceso, más que el último que sucedió para completar. ¿Hay alguna manera de hacer esto?
¿El script es de código abierto o es privado? –
@Andrew: código abierto (es mi script). – Peter