查看Linux中wait命令等待的任务
如何查看linux中wait命令等待的任务
在 Linux 中,wait
命令用于等待后台任务完成,但本身不直接显示等待的任务。要查看 wait
正在等待的任务,需结合 jobs
命令查看当前的后台作业。以下是详细步骤:
1. 查看后台任务(wait
等待的对象)
使用 jobs -l
命令 列出所有后台任务及其状态:
1
jobs -l
输出示例:
1
2
3[1] + 12345 Running sleep 60 &
[2] - 12346 Running some_long_script.sh &
[3] 12347 Done echo "Completed"
[1]
:作业编号(%1
)12345
:进程 PIDRunning
:任务状态(还有Done
/Stopped
)&
:后台运行标识
2. wait
命令的用法
- 等待所有后台任务完成:
1
wait
- 等待特定任务完成(使用作业编号或 PID):
1
2wait %1 # 等待作业编号 1
wait 12345 # 等待 PID 12345
3. 实际使用示例
1 | # 启动两个后台任务 |
4. 关键说明
wait
不显示任务列表:它只阻塞 Shell 直到任务完成,需通过jobs
提前查看任务。- 任务状态解读:
Running
:正在运行(wait
会等待)。Done
:已完成(wait
会立即跳过)。Stopped
:已暂停(需用bg
恢复后wait
才有效)。
- 脚本中监控:在脚本中使用
wait %1
时,确保任务是通过&
启动的后台作业。
5. 替代工具
- 查看进程树:
1
pstree -p # 显示所有进程树结构
- 检查进程状态:
1
ps aux | grep "some_script.sh"
总结:
要查看 wait
命令正在等待的任务:
- 在调用
wait
前先用jobs -l
列出后台任务。 - 根据任务状态(
Running
)确定哪些任务会被等待。 - 使用
wait %n
(n
为作业编号)或wait PID
明确等待对象。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Helloeuler!