명령을 실행하고 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