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를 해킹하여 요청을 발행해야 합니다. 영향을 받는 각 창은 추가 시 신호를 보냅니다.