내 tmux.conf
파일에는 창을 열고 이름을 지정하고 설정 창 등을 구성하도록 구성되어 있습니다.
그러나 내가 가진 한 가지 문제는 창 중 하나가 명령을 시작 ls
하면 명령이 완료되면 (즉시) 창이 닫히는 것입니다. 이 동작을 막을 방법이 있습니까? 또는 명령이 완료된 후 일반 쉘로 떨어 졌습니까?
창을 시작할 때 쉘-> 실행 명령을 시작해야한다고 가정하지만 방법을 알아낼 수 있으면 망할 것입니다. 나는이 문제에 대해 약간의 구글 검색을했지만 짧게 나왔다.
답변
몇 가지 옵션이 있습니다.
-
ls
창에서 실행하는 대신 쉘을 실행 한 다음 쉘 키 입력을 보내서 실행하십시오.tmux start-server tmux new-session -d -s session tmux new-window -t session:1 tmux send-keys -t session:1 ls C-m
-
다른 명령을 실행 한 후 bash 쉘을 사용하는 방식으로 일련의 명령을 점심 식사 할 수 있습니다.
tmux start-server tmux new-session -d tmux new-window 'ls;bash -i'
-
프로세스가 종료 된 후 창을 활성
remain-on-exit
상태로 유지하여 출력을 검토 할 수 있는 옵션 에 대한 자세한 내용 은 jasonwryan의 답변 을 참조하십시오 . -
일부 명령의 출력을 한 번 볼 가치가 있다면 새로 고칠 가치가 있습니다. 무언가의 출력을 모니터링하는 경우
watch
주기적으로 새로운 출력을 얻을 수 있습니다 . 이것은 다음과 같은 창에서 잘 작동합니다tmux
.tmux start-server tmux new-session -d tmux new-window 'watch -n 60 ls'
답변
remain-on-exit
옵션을 사용할 수 있습니다 :
종료시 종료 [on | off]
이 플래그가 설정된 창은 프로그램이 종료 될 때 소멸되지 않습니다. 창은 respawn-window 명령으로 다시 활성화 될 수 있습니다.
리스폰 과정을 단순화하기 위해 키에 바인딩하는 것이 좋습니다.
bind-key R respawn-window
이렇게하면 프로그램이 종료 될 때 죽은 창이 남지 않게됩니다.
답변
다음은 send-keys
@Caleb에서 권장 하는 방법을 사용한 확장 된 예입니다.
#!/bin/sh
tmux start-server
tmux new-session -d -n 'mywindowname'
tmux send-keys -t mywindowname 'cd notes' Enter 'vim whiteboard/tasks.md' Enter
tmux new-window -d -n 'secondwindowname' # this -d prevents focus from changing to the new window
tmux -2 attach-session -d