여러 화면 세션을 자동으로 시작하려면 어떻게합니까?


21

시작하는 명령을 screen만들고 다른 이름으로 4 개의 세션을 만들고 4 개의 다른 명령을 실행하려고 합니다.

이 작업을 수동으로 수행하는 방법을 알고 있습니다.

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

bash 스크립트 또는 다른 것으로 이것을 할 수 있습니까? 어떻게합니까?

답변:


15

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"$COMMAND백그라운드에서 실행되는 화면을 생성합니다 .

를 사용하여 활성 세션을 screen -ls보고 다시 연결할 수 있습니다 screen -r "$SESSION_NAME".

으로 죽은 세션을 종료 할 수 있습니다 screen -wipe.


작업이 완료됩니다!
hughes

1
이 명령은 각 명령에 대해 새 화면 세션을 만듭니다. 질문의 수동 단계처럼 각 명령에 대해 하나의 창을 포함하는 단일 화면 세션을 만드는 데 사용할 수 없습니다. 따라서 질문에 대한 답변이 아니며 .screenrc아래 답변이 대신 수락되어야합니다.
Tey '

백그라운드에서 실행중인 항목을 저렴하게 유지하려는 경우 다중 창 하나 세션에 실질적인 이점이 있습니까?
LawrenceC

29

여러 세션을 자동으로 시작하려면 .screenrc화면 구성 파일 인 파일을 설정하십시오. 그것으로, 당신은 세션을 만들고, 프로그램을 시작하고, 작업 디렉토리를 변경할 수 있습니다. 나는 그것을 사용하여 내 스크린 세션을 초기화합니다.

.screenrc 파일에 대한 간단한 시험 :

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

screen위 의 명령은 각각 하나의 화면 세션을 만듭니다. -t세션 제목을 설정합니다. 나머지 줄은 실행할 명령과 해당 매개 변수입니다.

따라서 첫 번째와 두 번째 screen줄은 세션을 시작하고 vim내부에서 시작합니다 . 세 번째 세션은 세션을 시작하고 프롬프트가 표시됩니다. chdir모든 후속 세션에 대한 작업 디렉토리를 변경합니다.

여러 .screenrc파일을 원한다면 원하는 방식으로 파일 이름을 지정하고로 파일을 선택하십시오 screen -c myscreenrc.


5

d, m, S 옵션을 함께 사용할 수 있습니다.

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S : 화면을 만들려면

d : 화면에서 분리

m : 화면이 다른 화면에서 호출되는지 여부에 관계없이 화면을 작성합니다.


3
흥미롭고, 당신은 screen -dmS s1등 대신에 이렇게 쓸 수 있습니다 . 옵션을 그룹화 할 때 인수가있는 옵션이 마지막 일 필요는 없다는 것을 몰랐습니다.
Tomasz Gandor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.