gpt4 book ai didi

bash:while 循环内的计数器(kill 和 kill -9)

转载 作者:行者123 更新时间:2023-11-29 09:05:42 31 4
gpt4 key购买 nike

所以我最近了解到 kill is not a synchronous命令,所以我在 bash 中使用这个 while 循环,这很棒:

while kill PID_OF_THE_PROCESS 2>/dev/null; do sleep 1; done

但是,在某些情况下(非常罕见,但它们仍然会发生),进程会卡住,并且它不会对 kill 信号起作用。在这些情况下,终止应用程序的唯一方法是使用“kill -9”。

所以我想知道,如何在 bash 中修改上面的 while 循环,使其仅在循环达到第 10 次迭代时才使用 -9 参数?

最佳答案

正如其他用户所说......在使用这种残酷的方法之前你必须解决阻塞的原因......无论如何......试试这个

#!/bin/bash

i=0

PID_OF_THE_PROCESS="your pid you can set as you like"

# send it just once
kill $PID_OF_THE_PROCESS 2>/dev/null;

while [ $i -lt 10 ];
do
# still alive?
[ -d /proc/$PID_OF_THE_PROCESS ] || exit;
sleep 1;
i=$((i+1))
done

# 10 iteration loop and still alive? be brutal
kill -9 $PID_OF_THE_PROCESS

关于bash:while 循环内的计数器(kill 和 kill -9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067229/

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