En mi script dividí un conjunto de datos en input_aa, input_ab, etc. Luego, ejecuto cada uno a través del mismo script Python, como tal:
# Execute program on each split file
for part in input_*; do
python3 $part &
done
wait
Mi pregunta es doble: ¿cómo detecto que un proceso de Python ha fallado y, cuando lo detecto, cómo mato a todos los niños engendrados y salgo del script con un error?

bash,dash,yash,mksh,zsh. Básicamente cualquier shell POSIX pero AT&T ksh.set -mse especifica (debajo de) en POSIX pero como una característica opcional.kill 0mata a todos los miembros del grupo de proceso, sea cual sea su padre. Consulteps -jpara ver los ID de grupo de proceso.Esto es un ejemplo. JUEGA con esto primero para obtener exactamente lo que necesitas. No puede romperse mucho como está.
Esto está configurado para fallar deliberadamente porque
ls oinklefallará (en mi máquina).Cuando obtienes lo que necesitas después de jugar con el script de inicio --- Cambiar:
a:
cambio:
a:
Las redirecciones están ahí para guardar registros. Puede que no los quieras.
fuente
killfileposible que no contenga todos los pids de los trabajos que se han iniciado.[ $? -ne 0 ]...