화면 세션을 시작하는 방법과 사람의 개입 없이 연결된 화면 세션에서 명령을 실행하는 방법을 알 수 없습니다. 예상되는 동작은 다음과 같습니다.
[me@me ~]# screen -S name -L --mystery_flag 'hostname;echo yes;echo no'
#new screen session
[me@me ~]# hostname
me
[me@me ~]# echo yes
yes
[me@me ~]# echo no
no
[me@me ~]#
화면의 분리된 세션에 명령을 보내거나 이와 같은 명령을 보낸 후 화면 세션을 닫는 방법만 찾았습니다 screen -S name "command"
. 대화형 스크립트를 실행하는 데 사용되므로 세션을 열린 상태로 유지하고 싶습니다.
답변1
GNU는 screen
다양한 옵션과 스크린 세션 내에서 실행되는 선택적 명령을 사용합니다. 명령이 제공되지 않으면 screen
세션에 대화형 셸 세션이 포함됩니다. screen
명령줄에 제공된 명령이든 실행 screen
된 셸이든 실행 중이던 명령 이 종료되면 세션이 종료됩니다 .
두 가지 질문이 있습니다.
- 여러 명령을 실행하고 싶습니다.
- 세션이 결국 종료되지 않고 대화형 셸 세션에 남아 있기를 원합니다
screen
.
screen
첫 번째 문제를 해결하려면 시작 명령을 다음으로 설정하십시오.
sh -c 'hostname; echo yes; echo no'
이는 인라인 스크립트를 시작하는 단일 명령입니다 sh -c
. 이 스크립트는 명령을 실행합니다. 실행 중인 스크립트에 필요한 경우(예제는 그렇지 않음) 대신 사용할 수 있습니다 bash -c
.sh -c
bash
두 번째 문제를 해결하려면 스크립트가 실행하는 명령 목록의 마지막 단계로 대화형 셸을 시작하는 것을 고려하세요 sh -c
.
sh -c 'hostname; echo yes; echo no; exec bash -i'
exec bash -i
대화형 쉘 세션을 시작합니다 bash
(이렇게 exec
하면바꾸다껍데기 sh -c
).
세션에서 다음 명령을 실행하십시오 screen
.
screen sh -c 'hostname; echo yes; echo no; exec bash -i'
쉘 세션이 종료되면 GNU는 screen
종료됩니다 bash -i
.