我有两条线:
在第一阶段。我期望在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 "..."将继续运行(因为未设置超时的杀死选项)。
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"'似乎传递给超时值的参数是在超时命令本身(它既不是提前终止也不是生存超时)的情况下运行的,那么,杀死选项的目的是什么?
发布于 2015-04-29 07:33:50
选项-k是在指定的秒后发送KILL信号,如果进程在超时后无法终止。
timeout首先发送TERM信号。如果指定了-k,那么它还会按照实时超时值发送KILL信号。
例如
timeout -k 5 10 someCommandtimeout在10秒后发送TERM信号。如果someCommand没有响应TERM (例如,它可以阻止TERM信号),那么timeout在5秒后发送KILL信号(即执行开始后的15秒)。信号KILL不能被阻塞。
https://stackoverflow.com/questions/29936956
复制相似问题