tmux가 다시 연결될 때 쉘이 이를 인식할 수 있습니까?

tmux가 다시 연결될 때 쉘이 이를 인식할 수 있습니까?

tmux 세션에 다시 연결하면 내 쉘이 SIGWINCH를 수신할 것으로 예상합니다. 그러나 그것은 진실이 아니다. :( 쉘이 다시 연결되었음을 인식하도록 하는 방법이 있습니까?

답변1

예.

tmux연결 후 보이는 내부 쉘을 말씀하시는 건가요 ? 만일이 경우라면:

tmux set-hook -g client-attached 'run-shell "kill -s WINCH #{pane_pid}"'

아니면 호출한 쉘 tmux attach, 즉 연결하기 전에 본 쉘인가요? (비록 말이 안 되긴 하지만). 그렇다면 다음과 같습니다.

tmux set-hook -g client-attached 'run-shell "kill -s WINCH \"$(ps -o ppid= -p #{client_pid})\""'

ps -o ppid= -p #{client_pid}책임은 어디에 있는가상위 프로세스의 PID를 가져옵니다.tmux attach.

-g후크가 전역적이라는 의미입니다. 취소 후크를 사용하십시오 tmux set-hook -gu client-attached.

답변2

tmux 내의 쉘? 크기가 변경되면 SIGWINCH를 수신해야 합니다.

알고 싶다면 크기가 변경되지 않았더라도 tmux ls/lsp로 폴링하여 쉘 창이 포함된 세션이 언제 연결되는지 확인하는 스크립트를 작성하거나 tmux를 해킹하여 요청을 발행해야 합니다. 영향을 받는 각 창은 추가 시 신호를 보냅니다.

관련 정보