![Shell脚本:Linux中子进程不会终止](https://linux22.com/image/627359/Shell%E8%84%9A%E6%9C%AC%EF%BC%9ALinux%E4%B8%AD%E5%AD%90%E8%BF%9B%E7%A8%8B%E4%B8%8D%E4%BC%9A%E7%BB%88%E6%AD%A2.png)
我编写了一个 shell 脚本来同时启动三个后台进程。在 shell 脚本中,我尝试等待所有子进程完成其作业,然后父进程终止。但是,不知为何,我发现休眠进程从未被唤醒。
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
命令,而不是复杂的轮询循环。我不知道其他 shell(sh、zsh 等),但我认为大多数/所有 shell 也都有wait
或与之等效的命令。