Сценарий оболочки: дочерний процесс не заканчивается в Linux

Я написал сценарий оболочки для запуска трех фоновых процессов одновременно. В сценарии оболочки я пытаюсь дождаться, пока все дети закончат свою работу, а затем родительскую работу прекратить. Но по какой-то причине я вижу, что спящие процессы никогда не просыпаются.

echo "Starting $1 instances" >> $logfile
for i in `seq 1 $1`
do
        /usr/bin/php index.php name&
done

echo "Waiting for all $l instances to complete \n" >> $logfile
wait
echo "All $instances scripts completed"  >>  $logfile

1 ответ

Если вы используете bash, вы должны использовать wait команда, а не сложный цикл опроса. Я не знаю о других оболочках (sh, zsh и т. Д.), Но я предполагаю, что большинство / все они также имеют waitили эквивалентный ему.

Другие вопросы по тегам