我尝试在linux中使用kill命令杀死一个进程。(不使用-9作为参数)
我需要确保进程真的被终止了。据我所知,kill命令是异步运行的,它可能需要一些时间才能完成。
我需要确保在我运行kill之后,我的进程已经使用bash终止了
你能帮个忙吗?
谢谢!
发布于 2011-05-03 15:26:05
终止带有信号0的进程将检查该进程是否仍在运行,而不是实际终止它。只需检查返回代码即可。
发布于 2011-05-03 15:28:10
假设$PID拥有您的进程的pid,您可以这样做:
kill "$PID"
while [ $(kill -0 "$PID") ]; do
sleep 1
done
echo "Process is killed"发布于 2011-05-03 15:55:47
kill用于向进程发送信号。它不一定会终止进程(但通常会)。没有明确提到信号的kill将向进程发送SIGTERM。SIGTERM上的默认操作是终止进程,但是进程可以设置不同的信号处理程序,并且进程可能不会终止。
我认为您需要的是一种方法来确定进程是否已经处理了信号。这可以使用ps s $PID来完成。如果这显示0s为挂起掩码,则该进程已接收到信号并对其进行了处理。
https://stackoverflow.com/questions/5866392
复制相似问题