동일한 화면 세션에서 두 번째 명령을 실행하는 방법


12

다음과 같이 화면에서 첫 번째 명령을 시작하고 있습니다.

screen -d -m -S testen -t lalala watch df -h

백그라운드에서 실행되는 화면 세션을 제공하고 나중에 다시 연결할 수 있습니다.

같은 화면 세션에서 새 창에서 두 번째 명령을 실행하려면 어떻게해야합니까?

답변:


11

분리 모드 ( ) 에서 터미널 크기 ( )에 맞게 -S명명 된 창 ( -t) 으로 명명 된 화면 세션 ( )을 시작하십시오 .-A-d -m

screen -S mySessionName -t myWinName0 -A -d -m

-t동일한 화면 세션 ( -S) 에서 다른 명명 된 창 ( )을 시작하십시오 .

screen -S mySessionName -X screen -t myWinName2

세션 ( ) 에서 -X stuff $'cmds'이름이 지정된 첫 번째 창 ( -p)에 몇 가지 명령 ( )을 넣습니다 -S.

screen -S mySessionName -p myWinName0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'

세션 ( ) 에서 -X stuff $'cmds'이름이 지정된 두 번째 창 ( -p)에 몇 가지 명령 ( )을 넣습니다 -S.

screen -S mySessionName -p myWinName1 -X stuff $'echo myWinName1\necho cmd1\necho cmd2\n'

화면 세션을 나열하고 다시 연결하여 무슨 일이 있었는지 확인하십시오.

screen -ls
screen -r mySessionName

참고 : 줄 바꿈 ( \n)은을 누르는 것을 시뮬레이션 Enter합니다. 세미콜론을 사용하여 명령을 분리 할 수도 있습니다.


"재료"비트를 수행 할 필요는 없습니다. screen -S sessionName -t windowName1 -Adm <command> && screen -S sessionName -X screen -t windowName2 -Adm <command2>
Lotus

4

내부 화면 :

  • Ctrl-A, c새로운 쉘 창을 엽니 다
  • Ctrl-A, :screen newcmd실행newcmd

외부:

screen -X testen "screen newcmd"

안녕하세요 grawity , 나는 이것을 알고 있지만 init 스크립트에서하고 싶습니다. 기본적으로 동일한 화면 세션에서 별도의 창에서 2 개의 명령을 시작하고 싶습니다. 당신을보고

1
@bob :이 답변의 예제 # 3, "외부 화면"을 참조하십시오.
user1686

안녕 grawity, screen -S testen -X 'screen echo "hi"'작동하지 않습니다.

또한 -X 방법을 사용할 수 없었습니다. FWIW, 내 화면 -v는 "화면 버전 4.00.03 (FAU) 23 - 10 월 06"말한다
라 우리 레티 넨

4

위의 접근법을 시도했지만 두 번째 명령은 두 번째 창에서 실행되지 않았습니다. 창 이름 대신 창 번호를 사용하여 예제를 약간 조정했습니다.

  1. 세션 생성

    screen -S mySessionName -t 0 -A -d -m
    
  2. 두 번째 창 만들기

    screen -S mySessionName -X screen -t 1
    
  3. 첫 번째 창으로 명령 보내기

    screen -S mySessionName -p 0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
    
  4. 두 번째 창으로 명령 보내기

    screen -S mySessionName -p 1 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
    
  5. 이제 첫 번째 창에서 명령이 실행되었는지 확인하십시오.

    screen -R mySessionName -p 0
    
  6. 이제 두 번째 창에서 명령이 실행되었는지 확인하십시오.

    screen -R mySessionName -p 1
    

화면 4.00.03 (CENTOS 6.3 x64)으로 테스트했습니다.


1

-c인수 를 통해 대체 .screenrc를 설정할 수 있습니다 . 이 새로운 screenrc에서는 스크린 세션이 초기화 될 때 시작되도록 여러 명령을 설정할 수 있습니다.

이 대체 .screenrc의 끝에 다음 명령을 입력하십시오.

screen 1 cmd1 args
screen 2 cmd2 args

한 가지 유형의 화면 세션 만 실행하려는 경우 대체 구성 파일을 설정할 필요가없고 기본 명령 실행이 항상 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.