스크린 세션을 생성하고 게임 서버를 시작하는 스크립트를 작성하려고 했는데 실제로 해냈습니다. 그런데 문제는 분리 후 세션에 다시 연결하는 것입니다. 세션에서 분리한 후 서버가 실행되는 것으로 알고 있지만 screen -ls
내 세션에 쓸 때 나타나지 않습니다. 입력해도 Cntrl+A "
세션이 표시되지 않습니다. screen -r
세션이 없다고 말해 보세요. 하지만 서버가 계속 실행 중이고 입력에 프로세스가 표시되므로 세션이 있다고 100% 확신 합니다 ps au
. 내가 뭘 잘못했나요?
또한 세션을 생성하고 해당 세션에서 서버를 실행한 다음 작업을 분리한 다음 다시 연결합니다. 스크립트에서 완료되면 다시 연결하거나 찾을 수 없습니다.
답변1
어쩌면 애플리케이션에 실제로 화면이 필요하지 않고 활성 세션(예: 데몬) 없이도 실행될 수도 있습니다. 그런 다음 간단히 화면에서 분리하면 됩니다. 그게 본질적으로 전부입니다. 포그라운드에서 실행되도록 하려면 일부 매개변수를 지정해야 할 수도 있습니다(해당 옵션이 있는 경우).
화면에서 bash를 실행해 볼 수 있습니다
screen -dmS script bash -c '/execute/shell/script.sh; exec bash'
이렇게 하면 화면이 유지되어(bash를 사용하여) 콘솔을 볼 수 있습니다.
답변2
먼저 다음 명령을 사용하여 새 스크린 세션을 시작하십시오.
screen -dmS <sessionname> <script_name>
이렇게 하면 프로덕션과 함께 새로운 독립 스크린 세션이 생성되며 <sessionname>
기본적으로 자동으로 분리됩니다.
나중에 할 수 있어첨부된다음 방법으로 언제든지 이 회의에 참여할 수 있습니다.
screen -r <sessionname>`
실행 중인 세션에 다시 연결하기 위해.
노트:다음 키보드 조합을 사용하십시오:Ctrl + A를 누른 다음 D도착하다분리다시 화면.
분리는 스크립트를 종료하지 않고 화면 내에서 스크립트를 계속 실행하는 것을 의미합니다. 즉, 나중에 언제든지 다시 연결할 수 있습니다.