我正在 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
答案 0 :(得分:0)
您可以写入临时文件以表明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
请注意,使用" real"编程语言(几乎任何语言)这种东西变得容易多了,例如在Python的subproccess
模块中只有timeout
设置: - )