【发布时间】:2012-07-10 16:06:15
【问题描述】:
我一直在使用 Bash 等到 PID 不再存在。我试过了
#!/bin/bash
while [ kill -0 PID > /dev/null 2>&1 ]; do
//code to kill process
done
//code to execute after process is dead
还有
#!/bin/bash
until [ ! kill -0 PID > /dev/null 2>&1 ]; do
//code to kill process
done
//code to execute after process is dead
这两个示例要么无法工作,要么在进程结束后继续循环。我做错了什么?
【问题讨论】:
-
你不能只用
wait "$PID"吗? -
它将返回 PID 不是 shell 的子代。
-
除非您所观察的进程是子进程,否则会有几个陷阱。详情请见this comment。