쉘 스크립트를 사용하지 않고 시간 초과 명령의 출력을 얻는 방법

쉘 스크립트를 사용하지 않고 시간 초과 명령의 출력을 얻는 방법

명령을 실행하고 stderr, stdout 및 정수 종료 값으로 출력을 가져오는 Java에서 ssh 명령 실행기를 사용하고 있습니다. 다음과 같은 시간 초과가 있는 명령을 실행하려고 합니다.

    timeout 5s COMMAND

명령이 시간 초과되었는지 알 수 있도록 stderr 또는 stdout에서 응답을 얻을 수 있는 방법이 있습니까?

답변1

에서 man timeout:

   If  the  command times out, and --preserve-status is not set, then exit
   with status 124.  Otherwise, exit with the status of  COMMAND.   If  no
   signal  is specified, send the TERM signal upon timeout.  The TERM sig‐
   nal kills any process that does not block or catch that signal.  It may
   be  necessary  to  use the KILL (9) signal, since this signal cannot be
   caught, in which case the exit status is 128+9 rather than 124.

그래서... timeout 5s command || [ $? -eq 124 ] && echo timeouted

관련 정보