나는 다음과 같은 것을 실행하려고합니다 :
sudo dhclient $wifi || otherFunction
문제는 dhclient
실패하면 오류가 발생하는 대신 중단된다는 것입니다.
60초 내에 완료되지 않으면 dhclient
종료되고 호출 되도록 위의 코드를 어떻게 다시 작성할 수 있습니까 ?otherFunction
dhclient
답변1
당신의정지시키다라벨은 모든 것을 제공합니다.
sudo timeout 60 dhclient $wifi || otherFunction
한 가지 예:
sudo timeout 3 sleep 5 || echo finished early
이는 다음을 사용합니다.시간 초과 유틸리티Linux의 GNU coreutils 패키지에서 제공됩니다.
답변2
사용timeout
.
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124
답변3
timeout
포트와 동일한 래퍼를 사용하십시오 .gtimeout
coreutils
brew
:
brew install coreutils
gtimeout --help
/usr/local/bin
에 있을 것 입니다 PATH
. 원래 이름으로 사용하려면 에 timeout
추가하세요 ./usr/local/opt/coreutils/libexec/gnubin
PATH