wait 命令是 Linux 附带的,因此您可以在所有 Linux 发行版中找到它。 在进程停止之前,它会等待它完成。 当您包含进程或作业 ID 时,您应该使用 wait 命令。 简单地说,包含 ID 的等待命令将继续等待,直到进程完成并返回终止状态。 所以如果你也想使用 wait 命令,我们建议你通读这篇文章。
什么是等待命令?
当我们谈论管理自动化工作流程时,Linux 中的等待命令被证明是一个有价值且简单的过程。 此外,它还可以帮助您正确设置流程,以便自动化顺利进行。 例如,使用 wait 命令,您需要确保当前模块执行完毕后,下一个模块才能开始工作。
该命令密切监视前一个进程。 完成前一个过程后,将向命令发送一个状态。 因此,如果您正在等待 ID 为 25351 的进程完成,wait 命令将在完成时提交退出状态。 其退出状态将在其返回消息中找到。 这是 wait 命令的一般语法:
wait [options] ID
ID(PID) –> 如果您选择此选项,进程 ID(等待 PID)将一直等到实用程序终止。 您可以通过以下命令找到进程的PID:
pidof <process name>
为了 example,我们想找到的PID Firefox,然后我们将在终端中执行以下命令:
Linux中等待命令的实例
下面是 wait 命令的一些示例,可以帮助您更好地理解它。 我们使用了不同的场景并相应地创建了脚本,让我们来看看它们:
1. 多进程等待命令
在这 example,我们将确定具有众多进程的等待命令的功能。 我们将起草一个脚本,我们可以在其中继续运行两个命令,然后等待它们执行。 我们创建了一个 bash 包含以下信息的脚本“ubuntupit.sh”:
#! /bin /bash echo "wait vlc" & process_id=$! echo "wait firefox" & wait $process_id echo process 1 ended as $? echo process 2 ended as $?
创建上述脚本后,我们在终端中执行了以下命令:
bash ubuntupit.sh
我们还可以在 shell 脚本中使用 wait 命令,用于生成子进程。 所以这是一个简单的脚本:
#! /bin /bash vlc & process_id=$! echo "PID: $process_id" wait $process_id echo "Exit Details: $?"
在上面的命令中:
- 第一行由 shebang 组成,第二行包含 vlc & 用于在其中使用等待命令。
- 美元! 作为内部 bash 用于存储在后台运行的最后一个进程的 PID 的变量。
- PID 被传递给下一行中的给定等待命令,该命令将一直等到 vlc 播放器关闭。
- 最后,系统会打印等待命令的退出细节。
现在,在终端中执行这个脚本:
我们还可以在脚本中使用 -n 选项来获得不同的结果。 这是一个包含 -n 选项的脚本“Ubuntupit2.sh”:
#! /bin /bash vlc firefox wait -n echo "First process ended" wait echo "All processes ended"
上述脚本中的 -n 选项会延迟打印 echo 语句,直到第一个进程完成。 wait 命令一直等到所有后台进程都完成。
2. 使用等待命令杀死一个进程
关于第二个 example 关于等待命令,我们将运行一个名为 ubuntupit3.sh 的脚本来终止一个进程,然后我们将运行等待命令。
#! /bin/bash echo "Kill a Process" vlc & process_id=$! kill $process_id wait $process_id echo $process_id is ended successfully.
您将在运行脚本时收到输出:
这里可以看到退出状态表示进程是否已经终止。 这 example 显示退出状态如何根据过程的结果以不同的方式返回。
3. 检查 Exit 状态值
在这个 example,可以看到函数check()函数需要两个参数; 让我们将脚本命名为 ubuntupit4.sh。 在这个脚本中,我们使用 sleep 命令来演示 example. 我们在这里定义以下函数:
#! /bin/bash function check() { echo "Execute sleep for $1 seconds" sleep $1 exit $2 } check $1 $2 & b=$! echo "System is checking the status of the process" wait $b && echo Ended Successfully || echo Not Ended Successfully
在这个函数中,我们首先反映第一个进程的长度。 然后我们使用特定信息休眠并退出进程。 我们考虑以下输入:
check $1 $2 & b=$! echo "System is checking the status of the process" wait $b && echo Ended Successfully || echo Not Ended Successfully
用户输入值后,使用等待命令输出状态。 这里我们使用了 6,5 和 6,0 作为 example:
最后,见解
上面的文章包含了关于 wait 命令的所有信息,它在 Linux 中的用法,以及工作示例。 您已经了解了如何在自动化工作流程中充分利用它。 文章中提到的所有内容都充分阅读,从使用的命令到其他详细信息,并且没有遗漏任何一点。