내 시나리오는 다음과 같습니다.
원격 위치에서 실행 중인 스크린 세션이 있습니다. 이 화면 안에는 콘솔 기반 프로그램이 있습니다. 화면 없이 실행될 때 프로그램은 터미널에서 시작되고 표준 입력에서 명령을 받아들입니다.
제가 원하는 것은 콘솔 프로그램이 명령을 받을 수 있도록 원격으로 화면에 명령을 보내는 방법입니다. 어쩌면 다음과 같은 것일 수도 있습니다.
내 컴퓨터->SSH 자동 전송 메시지->화면 세션->프로그램(실행 명령 수신)
그래서 원격 PC에서 화면으로 SSH 명령을 보낼 수 있고, 화면은 이를 프로그램으로 보냅니다. 프로그램은 이를 수락하고 실행합니다.
답변1
내가 올바르게 이해했다면 스크린 세션 내에서 실행되는 프로그램에 입력을 보내고 싶습니다. stuff
이를 수행하려면 screen 명령을 사용할 수 있습니다 . screen -X
옵션을 사용하면 명령을 첨부하지 않고 screen 세션에서 실행할 수 있습니다.
screen -S sessionname -p windowname -X stuff 'command1
command2
'
프로그램의 출력을 보려면 hardcopy
, log
및 logfile
명령을 참조하십시오.
답변2
분리된 화면에 명령을 보내려면:
screen -S <screen_name> -X stuff "command blah blah blah\n"
- 명령 끝에 "\n"이 있는지 확인하세요. "\n"이 추가되지 않으면 명령이 전송되지만 시작되지는 않습니다.
사이드 노트: 현재 있는 디렉터리를 종료하지 않고 나가려면 screen
다음 키 바인딩 단축키를 사용하여 디렉터리를 분리하세요. ( )ctrl + a + d
C-a-d