📖 6分で読める

【セキュリティ #5】tmux でプロセス永続化 — SSHが切れても動き続ける


⚠️ 注意 この記事は個人の学習記録です。筆者はセキュリティの専門家ではありません。 本番環境や機密性の高いシステムでは、必ず専門家に相談してください。

本記事の内容を参考にした結果について、筆者は一切の責任を負いません。


背景

VPSでAIアシスタント「スピカ」を24時間動かしています。

最初、普通にSSH接続して起動していたのですが…PCを閉じたらスピカも終了してしまいました 😱

「24時間動かしたいのに!」

そこで使い始めたのが tmux。SSH接続が切れても、バックグラウンドでプロセスが動き続ける仕組みです。

今では tmux new -s openclaw でセッションを作って、安心して運用しています。


この記事で学べること

  • なぜ SSH 切断でプロセスが終了するのか
  • tmux とは何か
  • 基本的な使い方
  • AIエージェントの永続化

SSH 切断の問題

SSH でサーバーに接続してプログラムを起動…

ssh user@server
node my-app.js  # アプリ起動!

でも…

graph TD
  A[SSH接続] --> B[プロセス起動]
  B --> C[動作中...]
  C --> D[WiFi切断 / PC閉じる]
  D --> E[SSH切断]
  E --> F[💀 プロセス終了]

SSH が切れると、起動したプロセスも終了してしまう!


なぜ終了する?

SSH接続 → シェル(bash)起動 → プロセス起動

SSH切断 → シェル終了 → 子プロセスに SIGHUP 送信 → 終了

tmux とは

ターミナルマルチプレクサ

graph TD
  subgraph tmux セッション
      A[ウィンドウ 1]
      B[ウィンドウ 2]
      C[ウィンドウ 3]
  end
  
  D[SSH接続] --> tmux セッション
  E[SSH切断] -.->|影響なし| tmux セッション

仕組み

sequenceDiagram
  participant SSH as SSH接続
  participant tmux as tmux サーバー
  participant App as アプリ

  SSH->>tmux: セッション作成
  tmux->>App: プロセス起動
  Note over SSH: WiFi切断
  SSH--x tmux: 接続終了
  Note over tmux,App: tmux は独立して動作
  App->>App: 動き続ける ✅

基本操作

インストール

# Ubuntu/Debian
sudo apt install tmux

# macOS
brew install tmux

新規セッション作成

tmux new -s mysession

デタッチ(抜ける)

Ctrl+B → D

セッションはバックグラウンドで動き続ける

再アタッチ(戻る)

tmux attach -t mysession

セッション一覧

tmux ls

AIエージェントの永続化

OpenClaw を tmux で起動

# セッション作成
tmux new -s openclaw

# OpenClaw 起動
openclaw gateway start

# デタッチ
Ctrl+B D

結果

graph LR
  A[tmux セッション 'openclaw'] --> B[OpenClaw Gateway]
  B --> C[24時間稼働 ✅]
  
  D[SSH切断] -.->|影響なし| A

セキュリティ観点

メリット

✅ プロセスの安定性向上
✅ 作業の継続性(途中で切れても大丈夫)
✅ ログの確認が容易

注意点

⚠️ tmux セッションは誰でもアタッチできる
   → マルチユーザー環境では注意
⚠️ 長時間動くプロセスはログ肥大に注意

よく使うコマンド

コマンド説明
tmux new -s 名前新規セッション
tmux attach -t 名前アタッチ
tmux lsセッション一覧
tmux kill-session -t 名前セッション終了
Ctrl+B → Dデタッチ
Ctrl+B → [スクロールモード

まとめ

ポイント説明
独立動作SSH 切断の影響を受けない
再接続可能いつでもセッションに戻れる
必須ツールサーバー運用には必須

私もスピカを tmux で動かしています。SSH切れても安心!


💡 この記事は個人VPS向けです。 業務環境では systemd などのサービス管理も検討してください。


シリーズ目次

  1. サンドボックスとは?
  2. SSH鍵認証入門
  3. Deploy Key を使う
  4. AIエージェントのリスク管理
  5. tmux でプロセス永続化 ← 今ここ
  6. CI/CD セキュリティチェック