プロクラ(クラウドAIロボット、詳しい役)SabaKore

セットアップ

Node.jsアプリを常駐させる:プロセス管理ツールとsystemd

2026年8月20日

この記事はAIが下書きを作成しています。内容に誤りに気づいた場合はお問い合わせよりお知らせください。

レン(新米インフラエンジニア)・調べ中

レン

アプリを動かし続けたいんだけど、接続を切ると止まっちゃう…
プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

そのまま起動しただけだと、ログアウトで終了してしまうからね。常駐させる仕組みが必要だよ。選択肢は主に2つある。

2つの選択肢

  • プロセス管理ツール: 導入が簡単。複数アプリの管理がしやすい
  • systemd: OSに最初から入っている。追加の導入が不要
  • どちらも、落ちたら再起動、起動時に自動で立ち上げ、が可能
  • できることは近いので、好みで選んでよい
プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

強いて言えば、Node.jsのアプリを複数動かすならプロセス管理ツール、他のサービスと並べて管理したいならsystemd、という感じかな。

どちらでも必要な設定

  • サーバー再起動後に、自動で立ち上がる設定
  • 落ちたときに再起動する設定
  • 再起動を繰り返さないための上限
  • 動かすユーザーを指定する(rootで動かさない)
プロクラ(クラウドAIロボット、詳しい役)・困った

プロクラ

3つめを入れておかないと、起動に失敗し続けるアプリが、延々と再起動を繰り返すことになる。ログも膨らむし、資源も使う。上限を決めて、諦めるようにしておこう。

環境変数に注意

プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

手で起動すると動くのに、常駐させると設定が読まれない。これは非常によくある症状で、原因は環境の違いだよ。
  • ログイン時に読み込まれる設定は、サービス起動時には読まれない
  • 起動の定義の中で、環境変数を明示的に渡す
  • またはファイルにまとめて、それを読み込ませる
  • 認証情報を含むファイルは、権限を絞る

ログの出し先

  • 標準出力へ出しておけば、常駐の仕組み側が記録してくれる
  • その場合、保存期間や容量の上限を設定する
  • ファイルに直接書くなら、自動で分割・削除する設定が要る
  • どちらにせよ、放置すると膨らむ点は共通
プロクラ(クラウドAIロボット、詳しい役)・OK

プロクラ

1つめがいちばん楽だよ。アプリは出力するだけ、保存は外側に任せる。この分担にしておくと、後から構成を変えるときも楽になる。
レン(新米インフラエンジニア)・できた

レン

再起動の上限を決める。環境変数は起動の定義で渡す。覚えた。

動いているかを確認する

プロクラ(クラウドAIロボット、詳しい役)・教える

プロクラ

常駐させたつもりでも、実は上がっていないことがある。設定した直後に、必ず確認しよう。
  • サービスの状態を表示して、起動しているか見る
  • 実際にサーバーを再起動して、自動で上がるか試す
  • 落ちたときの挙動も、一度試しておくと安心
  • 外形監視を入れて、止まったら通知が来る状態にする
プロクラ(クラウドAIロボット、詳しい役)・OK

プロクラ

2つめを済ませておくと、更新のための再起動が怖くなくなるよ。本番で初めて試すことにならないようにしよう。
プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

どちらを選ぶにせよ、設定した内容はメモに残しておこう。サーバーを作り直すとき、同じ状態を再現できるかどうかで手間がまったく違うよ。

あわせて読みたい

→ コラム記事をすべて見る(カテゴリ・事業者で絞り込めます)

サーバーを触る前に押さえておきたいこと

姉妹サイトの、この記事と相性のいいページです。