とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

tmuxのちょっと便利な使い方

tmuxで色々調べていると、設定方法や始め方、画面分割やセッション維持など、tmuxをフォアグラウンドで実行する方法が主にヒットします。ターミナルマルチプレクサなので正しいのですが、コマンドをバックグラウンドで実行するために使ってみるのはいかがでしょうか。

nohup 〜 &のように、&でバックグランドに送ってあげたらええやんけっと思われるかもしれませんが、tmuxでバックグランド実行をしてあげることで、途中アタッチしたり、デタッチしたりできます。途中にコマンドの進捗がみたいことってありますよね。こういう時に便利です。

tmuxのnewには-dで即デタッチする機能があります。tmux new -d COMMANDとすることで、tmuxからはデタッチしつつも、コマンドは走らせておけます。

tmux new -d sleep 10

とやると、tmuxに新しいセッションが作成され、その中でsleep 10が実行されます。もちろん、コマンドが終了したらセッションも削除されます。コマンドの実行が長くなることが予想される場合には使ってみるといいかもしれません。もし、終了後もセッションを維持したかったら以下のようにすると入力待ち状態で待機させられます。

tmux new -d 'sleep 10; read'

こんな感じで、いつ終わるかわからないようなコマンドはバックグラウンドに送りつつも、セッション維持して実行しておくと色々捗りそうです。