tmuxを使って、重たい処理をサーバでバックグラウンド処理する

執筆日: 更新日:

普通にサーバで重たい処理をするときに、ssh接続したターミナルで行うと処理が終わるまで接続を維持しないといけません。
しかし、tmuxを使うとsshの接続を切っても、tmuxのプロセスが生きている限りその処理をつづけてくれます。

tmuxの起動

tmuxコマンドで起動できます。
起動すると、ターミナル画面の下に緑色のバーが表示されます。

$ tmux

tmuxをバックグラウンドモードにする

何か重い処理を実行後、

Ctrl+b -> d

を押すことによってバックグラウンドモードで実行されます。
これでssh接続を切ってもtmuxのプロセスが生きている限り、実行が維持されます。

バックグラウンドで実行されているセッションを確認

バックグラウンドで実行されているものを見るには、以下のコマンドを使います

$ tmux list-sessions

または

$ tmux ls

これを実行すると

0: 1 windows (created Wed May  8 20:00:00 2024) [164x46]

のように、セッションが表示されます。
一番左の「0」がセッション名です

バックグラウンド実行からフォアグラウンド実行に戻す

今の実行状況などを確認するために、
フォアグラウンドにします。

$ tmux a -t セッション名
# 例: tmux a -t 0

参考

この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。