前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux小课堂之Wait命令

Linux小课堂之Wait命令

作者头像
用户6543014
发布2020-03-04 17:02:46
2.2K0
发布2020-03-04 17:02:46
举报

wait是一个shell命令,它等待给定进程完成,然后返回其退出状态。 Wait命令用于等待特定的进程ID和作业ID并返回其终止状态。

在执行大型自动化流程时,我们需要使几个模块等待到上一组模块完成并返回数据管道进入下一个模块的数据,在这种情况下,我们可以使用Wait命令直到完成上一个模块。

Wait命令如何工作?

Wait命令用于监视先前的进程,取决于先前的进程的返回状态,它将返回退出状态。例如,如果我们要等待完成特定的进程ID 13245,则当进程13245 完成 wait命令返回13245退出状态的返回值时,应使用“ wait 13245”。

-wait PID(PID-实用程序要等待终止的命令的进程ID)。-wait JID(JID-作业ID,标识要等待的后台进程,仅适用于当前Shell执行环境中的wait调用)。

Wait 命令的退出状态值取决于最后指定的PID / JID。当任何进程异常终止时,退出状态将大于128。

当它没有子进程调用并且当前shell知道的所有进程ID都已终止时,Wait命令以0值退出。如果wait命令检测到任何错误,那么它将返回1到126之间的任何值。如果最后一个进程ID是未知的,则wait命令将以值127退出。

Wait命令示例

让我们检查一些脚本以了解wait命令的工作方式。

示例1 –带有Wait命令的脚本

我们有两个脚本,分别称为“ foo.sh”和“ bar.sh”脚本。 'Foo.sh'脚本的输出数字介于1到5之间,而'bar.sh'脚本将调用foo.sh并在后台运行它,获取foo.sh的PID并等待其完成,一旦完成,它将启动“ bar.sh”完成循环。

Script – foo.sh

Script – bar.sh

Result

示例2 –没有wait命令的脚本

我们有两个脚本,分别称为“ foo.sh”和“ bar.sh”脚本。 'foo.sh'脚本输出的数字介于1到5之间,而bar.sh脚本将调用foo.sh并在后台运行它,但它不会等待foo.sh完成并执行这两个脚本。

Script – foo.sh

Script – bar.sh

Result

示例3 –具有wait命令和返回状态的脚本

“ bar.sh”脚本将调用foo.sh并在后台运行它,获取foo.sh的PID并等待其完成,一旦完成,它将启动bar.sh循环,最后,返回 foo.sh脚本的退出代码。

Script – foo.sh (Exit status = 0)

Script - foo.sh

Script – bar.sh

Result

Script – foo.sh (Exit status = NON Zero)

Script - foo.sh

Script – bar.sh

Result

结论

Wait和Sleep都是操作系统中基于时间的系统调用。 我们来看一下wait和sleep命令之间的区别。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SACC开源架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档