직렬 콘솔을 통해 분리 모드에서 GNU 화면을 실행하고 출력을 저장하려면 어떻게 해야 합니까?

직렬 콘솔을 통해 분리 모드에서 GNU 화면을 실행하고 출력을 저장하려면 어떻게 해야 합니까?

GNU screen을 사용하여 직렬 콘솔을 통해 분리 모드에서 단일 명령을 실행하고 해당 출력을 screen이 실행 중인 호스트의 로그 파일에 저장하고 싶습니다. 기본적으로 다음과 같은 비대화형에 해당합니다.

screen /dev/ttyUSB0 115200 # connect to serial console "/dev/ttyUSB0" using speed "115200"
ctrl+a H # start logging
some command
ctrl+a k y # quit

현재 셸에서 분리 모드로 단일 명령을 실행하는 방법을 알고 있습니다.

screen -d -m -L some command
# output is saved to screenlog.0

하지만 직렬 콘솔에 연결되어 있는 동안 동일한 작업을 수행하는 방법을 이해할 수 없습니다.

답변1

직렬 포트에서는 제대로 테스트할 수 없지만 다음과 같이 하면 작동할 수 있을 것 같습니다.

$ screen -S serial -L -d -m /dev/ttyUSB0
$ screen -S serial -X stuff 'some command\n'

내 버전은 로그 파일의 이름인 screen매개변수를 허용합니다 . -L분명히 모든 버전에 해당되는 것은 아닙니다. 로그 파일 이름을 설정하는 또 다른 방법은 (가능한 경우)을 사용하는 것입니다. 쓰기 전에 일정 기간 동안 출력을 버퍼링합니다. 기본 시간 초과는 10초이지만screen -S serial -X logfile filenamescreenlogfile flush NN이것 좀 바꿔 봐.

-X실행중인 것에 명령을 보내고 screen,stuff현재 창의 입력으로 주어진 문자열을 "채웁니다".

관련 정보