화면 캡처 종료 상태

화면 캡처 종료 상태

screen오류가 발생할 때 상호 작용할 수 있도록 계속 실행하는 장기 실행 명령이 있습니다 . 하지만 나는 또한 다른 쉘 스크립트(GNU 병렬성과 유사한 것을 구현하는)를 통해 그것을 시작할 수 있기를 원해서 screen -m -D mycommand그것을 사용하고 있는데 훌륭하게 작동합니다. 단지 어떻게 얻는지 알 수 없는 것 같습니다. 종료 상태 - 숙제를 다시 시작하는데 실패하는 것은 매우 중요합니다.

screen하위 프로세스의 종료 상태를 반환 하는 방법이 있습니까 ? 테스트 케이스를 가지고 놀려면:

screen -mD sh -c "exit 1"
echo $?
# prints 0; would like something that prints 1

답변1

이 플래그를 사용해 볼 수 있습니다 -L.

-L: Windows의 자동 출력 로깅을 켜도록 화면에 지시합니다.

screenlog.0나에게 이것은 다음과 같은 화면을 실행하면 모든 출력을 기록하는 작업 디렉토리에 호출되는 파일을 생성합니다.

screen -mDL sh -c 'your_command || echo $?'

아니면 어쩌면

screen -mDL sh -c 'your_command; echo $?'

그런 다음 파일의 마지막 줄에 종료 코드가 있는지 확인할 수 있습니다. 아마도 전체 결과는 다음과 같을 것입니다.

screen -mDL sh -c 'your_command; echo $?' && tail -1 screenlog.0

관련 정보