-1
我有脚本,我假设有时会挂起。bash中的脚本在进程上等待,然后放弃
我的目标是等到脚本完成或杀死它,如果它在30秒后没有出现,并返回一些代码。
(function) & pid=$!
wait $pid || sleep 30 || kill -9 $pid
finished=$?
所以我想到了上面。我不想浪费额外的第二次睡觉,如果过程完成,为什么我使用等待。
这是正确的还是更好的方法?
我有脚本,我假设有时会挂起。bash中的脚本在进程上等待,然后放弃
我的目标是等到脚本完成或杀死它,如果它在30秒后没有出现,并返回一些代码。
(function) & pid=$!
wait $pid || sleep 30 || kill -9 $pid
finished=$?
所以我想到了上面。我不想浪费额外的第二次睡觉,如果过程完成,为什么我使用等待。
这是正确的还是更好的方法?
有一个更好的方法:使用timeout
命令。
有关更多详细信息,请参见Timeout a command in bash without unnecessary delay。
这已被多次回答 - 以下是如何在bash中执行超时:http://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeout3 –