새로운 이름의 화면에서 명령 실행

새로운 이름의 화면에서 명령 실행

새 화면을 만들고 그 화면에서 명령을 실행하는 스크립트(개발자 웹 서버)가 있습니다.

screen -S webserver -dm sh launch_webserver.sh

그러나 명령이 완료되거나 웹서버가 종료되면 화면이 손상됩니다. 이것을 어떻게 피할 수 있습니까?

답변1

명령이 완료된 후 어떤 일이 발생하길 원하시나요? 더 이상 실행 중인 명령이 없으면 screen 세션이 종료되므로 세션을 유지하려면 다른 명령을 실행해야 합니다.

창을 유지하고 그 안에서 더 많은 명령을 실행하려면 초기 명령이 완료된 후 셸을 실행하세요.

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; exec bash -i'

출력을 보기 위해 창을 유지하려면 sleep(거의 무한한 인수 사용) 또는 read(를 누를 때까지 대기 Enter)와 같은 대기 명령을 실행하십시오.

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; read'

세션은 유지하고 창은 유지하려면 다른 명령을 실행하세요. screenrc 파일을 작성해야 합니다(어쨌든 좋은 생각입니다).

screen -c /path/to/webserver.screenrc

/path/to/webserver.screenrc포함 하는

sessionname webserver
screen -t webserver launch_webserver.sh
screen -t shell bash

관련 정보