Ожидание не означает остановку всех дочерних процессов. Это мой сценарий:
#!/bin/bash
titlename=`echo "$@"|sed 's/\..\{3\}$//'`
screen -X title "$titlename"
/usr/lib/process.bash -verbose $@
wait
bash -c "mail.bash $@"
screen -X title "$titlename.Done"
У меня нет доступа к /usr/lib/process.bash, но это скрипт, который часто меняется, поэтому я хотел бы сослаться на него... но в этом скрипте:
#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&
Моя проблема в том, что runall создает файл журнала... и mail.bash должен отправить мне этот файл журнала, но ожидание не ждет runall для завершения, похоже, он ждет только завершения process.bash. В любом случае, без доступа к process.bash или попытки поддерживать мою собственную версию process.bash в актуальном состоянии, чтобы заставить ожидание правильно ждать runall закончить? (лог-файл перезаписывает предыдущий запуск, поэтому я не могу просто проверить наличие лог-файла, так как он там всегда есть)
Спасибо, Дэн
ps -ef
после завершенияwait
? Это должно показать, какие процессы запущены и какой процесс является дочерним по отношению к другому процессу... - person Heinzi   schedule 18.02.2010