加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 等待后台进程在退出脚本之前完成

发布时间:2020-12-15 16:17:57 所属栏目:安全 来源:网络整理
导读:如何在退出我的脚本(TCL / Bash)之前确保所有后台进程都已完成执行。 我正在想把所有我的后台进程pids写到一个pidfile。然后在结束pgrep pidfile,看看是否有任何进程在我退出之前仍然运行。 有没有一些更简单的方法来做到这一点?和有没有一个TCL具体的方法
如何在退出我的脚本(TCL / Bash)之前确保所有后台进程都已完成执行。

我正在想把所有我的后台进程pids写到一个pidfile。然后在结束pgrep pidfile,看看是否有任何进程在我退出之前仍然运行。

有没有一些更简单的方法来做到这一点?和有没有一个TCL具体的方法来做到这一点?

如果您想等待作业完成,请使用wait。这将使shell等待,直到所有后台作业完成。但是,如果你的任何作业守护进程自己,他们不再是shell的子元素,等待将没有效果(就shell而言,子进程已经完成了。事实上,当进程守护进程时,它会这么做通过终止和产生继承其角色的新进程)。
#!/bin/sh
{ sleep 5; echo waking up after 5 seconds; } &
{ sleep 1; echo waking up after 1 second; } &
wait
echo all jobs are done!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读