L'attesa non è attesa per l'arresto di tutti i processi figlio. Questo è il mio script:Rendere il comando "Wait" di linux attendere TUTTI i processi figlio
#!/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"
non ho accesso a /usr/lib/process.bash, ma è uno script che cambia di frequente, quindi vorrei fare riferimento ... ma in quello script:
#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&
mio problema è che runall crea un file di registro ... e mail.bash è supponiamo di posta me che file di log, ma l'attesa non è in attesa di runall per finire, sembra solo stai aspettando il process.bash per finire. C'è comunque, senza accesso a process.bash, o cercando di mantenere la mia versione aggiornata di process.bash, per fare aspettare l'attesa correttamente runall per finire? (Il file di log sovrascrive il precedente esecuzione, quindi non si può semplicemente verificare la presenza del file di registro, dal momento che c'è sempre uno lì)
Grazie, Dan
Ci può fornire con le parti pertinenti delle 'ps -ef 'dopo che 'wait' ha finito? Questo dovrebbe mostrare quali processi sono in esecuzione e quale processo è figlio di quale altro processo ... – Heinzi
Il mio script e Process.bash finiscono quasi istantaneamente. L'unico processo rimanente è runall, che viene eseguito con PID casuali. – Dan