tmux가 실행되고 있지 않다고 주장하는 tmux 세션을 복원합니다.

tmux가 실행되고 있지 않다고 주장하는 tmux 세션을 복원합니다.

내 tmux 세션이 한동안 실행되었으며 다음 명령을 사용하여 실행 중인 것을 볼 수 있습니다 pstree.

systemd─┬─accounts-daemon───2*[{accounts-daemon}]
        ├─2*[agetty]
        ├─containerd───11*[{containerd}]
        ├─cron
        ├─dbus-daemon
        ├─4*[dd]
        ├─dockerd───12*[{dockerd}]
        ├─fail2ban-server───2*[{fail2ban-server}]
        ├─irqbalance───{irqbalance}
        ├─networkd-dispat
        ├─polkitd───2*[{polkitd}]
        ├─qemu-ga
        ├─rsyslogd───3*[{rsyslogd}]
        ├─ssh-agent
        ├─sshd───sshd───sshd───bash───pstree
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-network
        ├─systemd-resolve
        ├─systemd-timesyn───{systemd-timesyn}
        ├─systemd-udevd
        ├─tmux: server─┬─bash───find_cli
        │              └─3*[bash]
        └─unattended-upgr───{unattended-upgr}

(하단에 있어요)

그러나 tmux세션이 없다고 스스로 주장합니다.

$ tmux attach
no sessions
$ tmux ls
no server running on /tmp/tmux-1000/default

이 상황에서 tmux 세션을 복원할 수 있는 방법이 있습니까?

답변1

콘센트를 제거한 경우 다음을 수행할 수 있습니다.tmux가 다시 생성하도록 하세요그리고 pkill -USR1 tmux.

답변2

ps또는 기타 프로세스 정보 명령이 tmux여전히 실행 중인 것으로 보이지만 명령에 올바르게 응답하지 않는 경우 tmux attachSIGUSR1 신호를 tmux 서버에 보내 tmux를 다시 대화형으로 만들 수 있습니다.

위의 답변에서 언급했듯이 이 작업은 명령을 사용하여 수행할 수 있습니다 pkill -USR1 tmux. 그런 다음 tmux attach명령을 다시 실행하여 이제 tmux와 상호 작용할 수 있는지 확인할 수 있습니다.

기관총을 사용하는 대신 pkill특정 PID 번호를 사용하는 것입니다 kill. 명령 템플릿은 pkill프로그램 이름 패턴 대신 PID 번호를 사용하는 것과 매우 유사합니다. 따라서 명령은 다음과 같습니다.

$ 킬-USR1 NNNN

출력을 주의 깊게 읽으면 NNNN을 얻을 수 있습니다 ps ax | grep tmux. 이는 여러 개의 tmux 인스턴스가 실행 중이라고 가정합니다. 그렇지 않으면(즉, tmux의 단일 인스턴스만 실행하는 경우) tmux가 실제로 더 쉽습니다 pkill.

그런데, 나는 특히 루트로 사용될 때 둘 다 매우 위험 pkill하다는 것을 발견했습니다.killall

관련 정보