diff --git a/tool/apt-fast/ss-apt-fast b/tool/apt-fast/ss-apt-fast index 88c8838..9f8217a 100755 --- a/tool/apt-fast/ss-apt-fast +++ b/tool/apt-fast/ss-apt-fast @@ -231,17 +231,25 @@ _create_lock() { eval "exec $LCK_FD>\"$LCK_FILE.lock\"" -# trap "cleanup_aptfast; exit_cleanup_state" EXIT -# This will hide the exit code + # 设置 trap 来清理资源 trap "cleanup_aptfast" EXIT trap "cleanup_aptfast; exit 1" INT TERM - timer=0 - until $(flock -xn $LCK_FD);do - msg_already_running - sleep 1 - let timer+=1 - done - unset timer + + timer=0 + max_wait=180 # 最大等待时间为180秒(3分钟) + + until $(flock -xn $LCK_FD); do + msg_already_running + sleep 1 + let timer+=1 + + if [ $timer -ge $max_wait ]; then + echo "timeout" + exit 1 + fi + done + + unset timer } # unlock and remove the lock file