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

ちなみに、私は特にrootとして使用された場合、両方とも非常に危険でpkillあることがわかりました。killall

関連情報