PVEバージョンアップのためにtmuxを使う

PVEのバージョンアップ(8—>9)を行いたいのだが、コンソール(キーボード・ディスプレイ)をホストにつけるのは大変(PC用ディスプレイが43インチ一台)なのでリモートで行いたいのだがsshでのアップデートは非推奨である。公式ではこのような場合tmuxやscreenを使うようにと記載がある。

tmuxはどこで起動したらいいのか問題

ちゃんとチャピれば答えが見つかるが…
作業先のサーバでtmuxを起動すべし。まぁ、当然といえば当然か…
今回の場合はPVE上でtmuxコマンドを起動する。

とりあえず、デタッチ・アタッチだけ

tmuxは多機能であるが今回必要な機能は、セッションの維持だけなのでデタッチ・アタッチができればよい。

デタッチ

デタッチまでの流れ

踏み台サーバにログイン → 対象サーバにログイン → tmux コマンド実行 → 作業開始 → デタッチ/ssh切断など

tmuxコマンドを実行すると、普段利用しているシェルが起動する。そのまま作業を開始する。
デタッチするとtmuxを実行したシェルに復帰する。
接続元との接続が切れた場合などもtmuxセッションは残っている。

デタッチコマンド

CTRL+b d

アタッチまでの流れ

踏み台サーバにログイン → 対象サーバにログイン → tmux a コマンド実行

(なんらかの原因でsshが切断された場合などで)中断した作業を開始するには、サーバにログインし tmux ls コマンドでセッションの確認を行った後、そのセッションを指定して tmux を起動する。セッションが一つであることが明確であれば、tmux a コマンドで引き続き作業ができる。

セッション確認コマンド

tmuxコマンドを実行したサーバ上で以下のコマンドを実行する。

% tmux ls

以下実行例

# tmux ls
0: 1 windows (created Wed May  6 18:11:22 2026)

アッタチコマンド

CTRL+b a

注意事項

tmux セッション上で一時停止/バックグランドで起動したジョブがある
かつ
デタッチせずにセッションを抜ける

ジョブが消えるか親が1になる(tmuxセッションを抜けるときにジョブがあるよと教えてくれる)。

コメント

タイトルとURLをコピーしました