'서비스 네트워크 다시 시작'으로 인한 시간 초과

'서비스 네트워크 다시 시작'으로 인한 시간 초과

문제 해결 호출의 일부로 서비스 네트워크를 다시 시작하는 Fedora 22에서 실행되는 스크립트가 있습니다 service network restart. 해당 명령을 실행하는 데 너무 오랜 시간이 걸리는지 확인하고 싶습니다. 시간이 너무 오래 걸리면 "네트워크 서비스를 다시 시작하는 중 오류가 발생했습니다"라는 메시지를 출력하고 싶습니다. 그렇지 않으면 스크립트를 계속하고 싶습니다.

답변1

timeout명령을 사용하여 지정된 시간 제한 내에 명령이나 스크립트를 실행할 수 있습니다 . 이것과 비슷한 것 :

timeout 10m command 

명령이 10분 이내에 완료될 때까지 기다리지 않으면 명령이 종료되고 상태 124로 종료됩니다. 그런 다음 종료 상태를 확인 timeout하고 이를 기반으로 적절한 메시지를 인쇄할 수 있습니다. 자세한 내용은 여기를 참조하세요.시간 초과 맨페이지.

긴 명령을 종료하고 싶지 않다면 다음과 같이 하십시오:

(( sleep $TIMEOUT; echo "command took so long!" ) & exec $COMMAND )

TIMEOUT에서는 메시지가 인쇄되지만 명령은 계속 실행됩니다.

답변2

원본 시스템 스크립트 편집에 신경 쓰지 않는다면 스크립트 내부에서 다음과 같은 기능을 만들 수 있습니다.

timeoutf(){
    #If hangs 1 minute, dies..
    sleep 1m 
    kill $PPID  
}

timeoutf&

관련 정보