존재하는 경우 특정 화면 창에서 프로세스를 실행하고, 그렇지 않으면 해당 화면을 만들고 다음을 수행합니다.

존재하는 경우 특정 화면 창에서 프로세스를 실행하고, 그렇지 않으면 해당 화면을 만들고 다음을 수행합니다.

나는 그것에 대한 경험이 거의 없으며 screen최근에 창문이 있다는 것을 발견했습니다. 그 전에는 실행해야 하는 각 프로세스에 대해 새 세션을 만들었습니다(알고 있죠?). 그러나 이제 알게 되었으므로 프로세스를 단일 화면에서 실행하고 싶습니다. 시작 시 해당 화면의 창에서 여러 프로세스가 실행되어야 하지만 특정 창에서 프로세스를 실행하고 존재하지 않는 경우 세션을 만드는 방법을 모르겠습니다. 프로세스가 특정 창(8 및 9)을 차지하도록 하고 싶습니다.

나는 그것이 screen -dmS main bashmain이라는 스크린 세션에서 bash를 실행할 것이라는 것을 알고 있지만 이것은 항상 새로운 세션을 생성합니다. main해당 세션이 이전에 존재했는지 여부에 관계없이 window 9 에서 호출된 세션에서 bash가 실행되도록 하려면 무엇을 실행해야 할지 모르겠습니다 main.

이를 달성하려면 시작 시 어떤 명령을 실행해야 합니까?

답변1

플래그를 사용해야 합니다 -ls.

bash-4.3$ screen -dmS main bash
bash-4.3$ screen -ls
There is a screen on:
    7144.main   (2017年01月28日 20时05分05秒) (Detached)
1 Socket in /var/run/screen/S-xieerqi.

-ls기존 대화가 표시되며 -x태그를 사용하여 해당 대화에 다시 연결할 수 있습니다. 스크립팅 관점에서 다음을 수행할 수 있습니다.

bash-4.3$ my_session=$(screen -ls | awk '/[[:digit:]]\.main/{print $1}')
bash-4.3$ screen -x $my_session

관련 정보