Esperar no está esperando a que se detengan todos los procesos secundarios. Esta es mi guión:Hacer que el comando "Esperar" de Linux espere a TODOS los procesos secundarios
#!/bin/bash
titlename=`echo "[email protected]"|sed 's/\..\{3\}$//'`
screen -X title "$titlename"
/usr/lib/process.bash -verbose [email protected]
wait
bash -c "mail.bash [email protected]"
screen -X title "$titlename.Done"
que no tienen acceso a /usr/lib/process.bash, pero es un script que cambia con frecuencia, por lo que me gustaría hacer referencia a ella ... pero en ese guión:
#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&
Mi problema es que runall crea un archivo de registro ... y mail.bash se supone que me envía ese archivo de registro, pero la espera no está esperando runall para terminar, parece solo estar esperando process.bash para terminar. ¿Hay de todos modos, sin acceso a process.bash, o tratando de mantener mi propia versión actualizada de process.bash, para que la espera espere adecuadamente runall para terminar? (El archivo de registro sobrescribe la ejecución anterior, por lo que no puede limitarse a verificar la presencia del archivo de registro, ya que siempre hay una allí)
Gracias, Dan
¿Nos puede proporcionar a las partes correspondientes de 'ps-ef 'después de' esperar' ha terminado? Eso debería mostrar qué procesos se están ejecutando y qué proceso es secundario de qué otro proceso ... – Heinzi
Mi script y Process.bash terminan casi al instante. El único proceso restante es runall, que se ejecuta bajo PID aleatorios. – Dan