gpt4 book ai didi

linux - Shell 在超时后终止挂起的脚本,但如果脚本没有挂起则取消超时

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:25 25 4
gpt4 key购买 nike

我在 tcsh 工作(叹息),我想实现标题中描述的场景。我在下面提出了部分可行的解决方案。它启动 script_1.sh 并在超时后将其终止。如果 script_1.sh 挂起,那可以正常工作,但如果它在超时前完成,script_2.sh 仍必须等待超时发生,我想立即启动 script_2.sh。

setenv timeout 2000

/home/$USER/script_1.sh &

sleep $timeout
kill -9 $!

/home/$USER/script_2.sh

最佳答案

您可以写入一个临时文件来表示 script1 已完成:

setenv timeout 2000

/home/$USER/script_1.sh && echo > /tmp/script1_done &

sleep $timeout

if ( ! -f /tmp/script1_done ) then
kill -9 $!
endif
rm /tmp/script1_done

/home/$USER/script_2.sh

请注意,使用“真正的”编程语言(几乎任何语言),这类事情变得容易得多,例如在 Python 的 subproccess 模块中,有一个简单的超时设置:-)

关于linux - Shell 在超时后终止挂起的脚本,但如果脚本没有挂起则取消超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46745212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com