gpt4 book ai didi

bash - 使用 while 或 until 等到 PID 不存在

转载 作者:行者123 更新时间:2023-11-29 08:55:55 26 4
gpt4 key购买 nike

我一直在使用 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

这两个示例要么无法运行,要么在进程结束后继续循环。我做错了什么?

最佳答案

你应该简单地做:

while kill -0 $PID >/dev/null 2>&1
do
# Code to kill process
done

循环条件测试最后一条命令的退出状态——在本例中为kill-0 选项(在问题中使用)实际上并没有向进程发送任何信号,但它确实检查是否可以发送信号——如果进程没有,则无法发送存在的时间更长。(请参阅 kill() 函数和 POSIX kill 实用程序的 POSIX 规范。)

'last' 的意义在于你可以这样写:

while sleep 1
echo Testing again
kill -0 $PID >/dev/null 2>&1
do
# Code to kill process
done

这也测试了kill(和单独的kill)的退出状态。

关于bash - 使用 while 或 until 等到 PID 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com