Bash 等待后台进程
作者:迹忆客
最近更新:2023/05/18
浏览次数:
本篇文章介绍如何在 Bash 中等待后台进程。
Bash 等待后台进程
Bash 中的 wait 命令可用于等待所有后台进程完成。 此命令将等待进程并返回退出状态。
wait
命令会影响当前的 shell 执行环境,这也是 Bash 等 shell 中内置的原因。
wait
命令的语法是:
wait [Options] BackgroundProcessID
其中 BackgroundProcessID id 是进程或作业。 wait 命令将等到给定 ID 的所有进程和子进程都完成。
等待命令的一个简单示例可以是:
wait 1234
上面的命令会等待后台进程1234,我们也可以给多个进程,然后wait命令会等待所有的后台进程。
现在让我们在后台进程中运行一个进程:
rsync -a /mn/c/Users/Sheeraz &
上面的命令将在后台运行一个进程并返回作业和进程 ID。 查看输出:
[1] 37
其中作业 ID 为 1,进程 ID 为 37。
现在等待作业,我们运行以下命令:
wait %1
其中 1 是作业 ID。 此命令的输出是:
[1]+ Exit 23 rsync -a /mn/c/Users/Sheeraz
为了等待这个过程,我们使用以下命令:
wait 37
上面的命令会等待后台进程 37 完成。 大多数时候,wait
命令用于 Bash 脚本文件,产生并行执行的后台进程。
以下是脚本文件的示例:
#!/bin/bash
sleep 30 &
ProcessId=$!
echo "PID: $ProcessId"
wait $ProcessId
echo "Exit status: $?"
运行此脚本将输出后台进程的进程 ID 和退出状态。 查看输出:
PID: 50
Exit status: 0
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。