![새로운 이름의 화면에서 명령 실행](https://linux55.com/image/33720/%EC%83%88%EB%A1%9C%EC%9A%B4%20%EC%9D%B4%EB%A6%84%EC%9D%98%20%ED%99%94%EB%A9%B4%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%20%EC%8B%A4%ED%96%89.png)
새 화면을 만들고 그 화면에서 명령을 실행하는 스크립트(개발자 웹 서버)가 있습니다.
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