はじめに
- 自分用メモですが、同じ状況の方の参考になれば幸いです
- 普段は WPF と ASP.NET の API 開発を長年やっています
- 本記事での環境は、Ubuntu 22.04、
tmux
のバージョンは 3.2a です
ChatGPTに聞いたこと
また間違って SSH接続 を終了させてしまい、処理中の作業がすべて消えてしまった!これ、どうにかならない?
ChatGPTの答え
はい、解決できます。tmux
を使いましょう。
各コマンド
セッションの起動
tmux new -s <name>
このコマンドを実行すると、新しいセッションが作成され、画面が切り替わります。
切り替わったセッション内で時間のかかる処理を実行しておけば、セッションを抜けた後でも バックグラウンドで処理が継続 されます。
セッション一覧
tmux ls
tmux list-sessions
も同じ意味で使えます。どちらを使っても問題ありません。
セッションへのアタッチ
tmux attach -t <name>
セッションの強制終了
tmux kill-session -t <name>
セッション中でよく使う操作
セッションから抜ける(中断)
Ctrl+b → d
セッションを「デタッチ」=中断。処理はそのまま動き続けます。あとから再接続可能です。
セッションを終了する
exit
または Ctrl+d を押すと、シェルを終了し、セッションも終了します。
この場合は処理も止まりますので注意が必要です。
感想
これまでは時間のかかる処理を走らせていると、うっかりクライアントを閉じてしまい、最初からやり直しになることがよくありました。
ですが tmux
を導入してからは、安心してクライアントを閉じたり電源を落としたりできるようになりました。