Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在.sh文件中自动退出超时运行的程序?_Bash_Sh - Fatal编程技术网

Bash 如何在.sh文件中自动退出超时运行的程序?

Bash 如何在.sh文件中自动退出超时运行的程序?,bash,sh,Bash,Sh,有谁能告诉我,当一个执行程序(由相同的.sh文件启动)仍在运行时,如何在指定的超时(可能是300秒)后自动转义到bash脚本中的另一行 非常感谢 您可以在后台运行它 cmd1 & sleep 300 cmd2 如果您在Linux上运行,那么它附带了coreutils timeout -s KILL 300 command1 command2 timeout将向command1发送一个KILL信号,如果它在300秒后仍在运行。如果发生超时,退出状态将为124,否则退出状态为comman

有谁能告诉我,当一个执行程序(由相同的.sh文件启动)仍在运行时,如何在指定的超时(可能是300秒)后自动转义到bash脚本中的另一行


非常感谢

您可以在后台运行它

cmd1 &
sleep 300
cmd2

如果您在Linux上运行,那么它附带了
coreutils

timeout -s KILL 300 command1
command2

timeout
将向
command1
发送一个
KILL
信号,如果它在
300
秒后仍在运行。如果发生超时,退出状态将为
124
,否则退出状态为
command1

的退出状态,这如何强制执行时间限制?相反,这可以让
cmd1
运行任意时间,而
cmd2
必须等待300秒才能运行。您可以在运行cmd2Yes之前/之后的300秒后杀死cmd1。你必须自己做。但没那么难。$!将具有进程id。这不是关于它有多难这并没有回答问题,即“如何自动转义到另一行”。但是如果cmd1的执行时间超过300秒,我希望在时间结束时停止cmd1。这样可以吗?无论如何,我会试试的,谢谢!是否要上一行中止并继续下一行?您可以使用
timeout-s KILL 300命令
将在
300
秒后向
command
发送一个
KILL
信号。假设您在Linux上。