문제

에 따르면 유닉스 "화면"명령의 문서, .screenrc로 구성하여 많은 기본 화면으로 시작하여 각각 지정하는 명령을 실행할 수 있습니다.

여기 내 cofig가 있습니다.

# Default screens
screen -t "shell_0"  1
screen -t "autotest" 2 cd ~/project/contactdb ; autotest

Autotest 명령을 실행하지 않습니다. 내가 달리려고하는 그 창 autotest 시작하면 즉시 닫습니다 screen.

나는 또한 단지 그것을 시도했다 ...

screen -t "autotest" 2 cd ~/project/contactdb

동일한 결과.

나는 또한 시도했다 ...

screen -t "autotest" 2 ls

같은 결과도 있습니다.

시작시 주어진 화면에서 명령을 실행하도록하는 비밀은 무엇입니까?

도움이 되었습니까?

해결책

귀하의 프로그램이 실행되고 있습니다 (CD 제외). 부모 쉘없이 실행되는 것만이므로 완료 되 자마자 종료되고 완료되었습니다.

당신은 할 수 있습니다 :

screen -t "autotest" 2 bash -c 'cd ~/project/contactdb ; autotest'

두 개의 껍질을 낳지 만 인생은 아마도 계속 될 것입니다.

다른 팁

이 시도:

$ screen -S 'tailf messages' -d -m tailf /var/log/messages

그런 다음 나중에 할 수 있습니다.

$ screen -ls
1234.tailf messages

다음과 같은

$screen -r 1234

이것은 도움이 될 수 있지만 전적으로 원하는 것이 아닐 수도 있습니다.

"Zombie AZ"또는 "defzombie az"를 .screenrc의 첫 줄로 넣으십시오. "AZ"는 원하는 2 개의 키가 될 수 있습니다. 이제 화면이 닫히면 (예를 들어 명령이 완료됨) 실제로 닫히지 않습니다. 'A'를 치면 닫히면 'Z'를 누르면 해당 화면에 첨부 된 명령이 다시 시작됩니다.

나는 그것을 발견했다 화면 사용자 매뉴얼.

마치 입력 한 것처럼 문자를 화면에 "물건"할 수도 있습니다.

예를 들어 할 수있는 방법은 다음과 같습니다.


screen -t "shell_0"  1

# create the following screen in the desired dir, instead of cd-ing afterwards :)
chdir ~/project/contactdb
screen -t "autotest" 2

# (without this sometimes screens fail to start correctly for me)
sleep 5

# paste some text into screen number 2:
select 2
stuff "autotest\012"

내 모습은 다음과 같습니다. 잘 작동하는 것 같습니다. "Autotest"명령이 존재하지 않으면 괄호가 문제를 일으키거나 화면이 창을 열지 않을 수 있다고 생각합니다.

screen -t zsh 1
screen -t emacs 2 emacs -nw
screen -t mutt 3 mutt
monitor on
screen -t mc 4 mc -s
screen -t elinks 4 elinks

내가하는 방법은 다음과 같습니다.

screen -t shell_0
chdir ~/project/contactdb
screen -t autotest autotest

상기는 화면에 의해 절차 적으로 평가되는 것으로 보인다. 먼저 제목으로 새 화면을 설정합니다 shell_0. 다른 옵션을 제공하지 않았기 때문에 현재 작업 디렉토리는 부모 쉘 또는 사용자의 홈 디렉토리의 디렉토리가 될 것입니다. 그런 다음 새 화면의 기본 디렉토리를 ~/project/contactdb. 다음으로, 우리는 새로운 화면을 실행합니다 autotest 명령.

창 번호 (n) 선택 사항입니다. 일반적으로 생략합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top