내 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 attach
SIGUSR1 신호를 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