【セキュリティ #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 などのサービス管理も検討してください。
シリーズ目次
- サンドボックスとは?
- SSH鍵認証入門
- Deploy Key を使う
- AIエージェントのリスク管理
- tmux でプロセス永続化 ← 今ここ
- CI/CD セキュリティチェック