首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux -杀死-k开关如何在超时命令中工作?

Linux -杀死-k开关如何在超时命令中工作?
EN

Stack Overflow用户
提问于 2015-04-29 07:25:14
回答 1查看 8.8K关注 0票数 9

我有两条线:

在第一阶段。我期望在5秒后终止sh -c "..."命令,但它一直存在直到超时退出(10秒)

代码语言:javascript
复制
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 "..."将继续运行(因为未设置超时的杀死选项)。

代码语言:javascript
复制
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"'

似乎传递给超时值的参数是在超时命令本身(它既不是提前终止也不是生存超时)的情况下运行的,那么,杀死选项的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 07:33:50

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

timeout首先发送TERM信号。如果指定了-k,那么它还会按照实时超时值发送KILL信号。

例如

代码语言:javascript
复制
timeout -k 5 10 someCommand

timeout在10秒后发送TERM信号。如果someCommand没有响应TERM (例如,它可以阻止TERM信号),那么timeout在5秒后发送KILL信号(即执行开始后的15秒)。信号KILL不能被阻塞。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29936956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档