加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash:在while循环中反击(kill和kill -9)

发布时间:2020-12-15 17:01:49 所属栏目:安全 来源:网络整理
导读:所以我最近学会了 kill is not a synchronous命令,所以我在bash中使用while循环,这很棒: while kill PID_OF_THE_PROCESS 2/dev/null; do sleep 1; done 但是,有些情况(非常罕见,但它们仍然会发生),其中进程被卡住,并且它不会对kill信号起作用.在这些情况下,
所以我最近学会了 kill is not a synchronous命令,所以我在bash中使用while循环,这很棒:
while kill PID_OF_THE_PROCESS 2>/dev/null; do sleep 1; done

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

所以我想知道,如果循环已达到第10次迭代,如何在bash中修改上面的while循环以使用-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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读