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

Linux – kill -k switch如何在timeout命令中工作

发布时间:2020-12-14 01:05:28 所属栏目:Linux 来源:网络整理
导读:我有两个一个衬垫: 在第一.我预计在5秒后杀死sh -c“…”命令但它一直存在直到超时退出(持续10秒) timeout -k 5s 10s sh -c 'sleep 20s echo "Long running command which is visible under: ps -elf | grep sleep during whole life (10s) time of timeout
我有两个一个衬垫:

在第一.我预计在5秒后杀死sh -c“…”命令但它一直存在直到超时退出(持续10秒)

timeout -k 5s 10s sh -c 'sleep 20s && echo "Long running command which is visible under: ps -elf | grep sleep during whole life (10s) time of timeout command"'

第二.我预计超时将以返回代码124退出(因为sh -c“…”命令仍在运行)而命令sh -c“…”将继续运行(因为超时的kill选项)没设定)

timeout 10s sh -c 'sleep 20s && echo "Long running command which is visible under: ps -elf | grep sleep during whole life (10s) time of timeout command"'

似乎传递给超时的参数运行准确的时间作为超时命令本身(它没有被提前杀死也没有超时),那么kill选项的目的是什么呢?

解决方法

如果在超时后无法终止进程,则选项-k将在指定的秒后发送KILL信号.

超时首先发送TERM信号.如果指定了-k,那么它还会在实际超时值之后发送KILL信号.

例如

timeout -k 5 10 someCommand

超时在10秒后发送TERM信号.如果某些命令没有响应TERM(例如它可以阻止TERM信号),那么超时在5秒后(即自执行开始以来的第15秒)发送KILL信号.信号KILL无法阻止.

(编辑:李大同)

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

    推荐文章
      热点阅读