화면이 시작되었는지 테스트한 다음 화면에서 명령을 실행하고 분리하는 방법은 무엇입니까?

화면이 시작되었는지 테스트한 다음 화면에서 명령을 실행하고 분리하는 방법은 무엇입니까?
screen -list
There are screens on:
        4278.chat       (07/16/15 14:26:47)     (Detached)
        15127.notifier  (07/16/15 13:27:57)     (Detached)

내 목표는 다음과 같습니다.

  • 채팅 화면이 시작되지 않으면 시작하고, 그렇지 않으면 닫습니다.
  • 채팅 세션에서 명령 실행(예: node chat.js)
  • 채팅 세션 분리

답변1

여러 부분으로 구성된 답변:

  • 채팅 화면이 시작되지 않으면 시작하고, 그렇지 않으면 닫습니다.
screen -S chat -X quit || screen -S chat

detach그게 당신이 의미하는 것이라면 스크린 세션을 죽이는 것보다 오히려 할 수도 있습니다 .

  • 채팅 세션에서 명령 실행(예: node chat.js)

새 화면을 시작하고 명령을 실행하려는 경우

screen -dm -S chat && screen -S chat -X stuff 'command-to-execute-in-screen-subshell
'

따옴표 안에 새 줄이 포함되어 있음을 확인하세요. 화면이 이미 실행 중인 경우 전반부를 생략할 수 있습니다.

  • 채팅 세션 분리
screen -S chat -X detach

첫 번째 질문에 대한 답변도 참조하세요.

이 모든 것이 매뉴얼에 합리적으로 문서화되어 있습니다.

관련 정보