我有两个衬垫:
首先。我希望在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选项的目的是什么呢?
答案 0 :(得分:7)
选项fasta
是在指定的秒数后发送-k
信号,如果在超时后无法终止该过程。
KILL
首先发送timeout
信号。如果指定了TERM
,那么它还会在实际超时值之后发送-k
信号。
例如
KILL
timeout -k 5 10 someCommand
在10秒后发送timeout
信号。如果TERM
没有回复someCommand
(例如,它可能阻止TERM
信号),则TERM
发送timeout
信号之后 5秒(即自执行开始以来的第15秒)。信号KILL
无法阻止。