systemd を使用して Node.js アプリケーションをサービスとして実行する方法

2024-04-02

Node.js をバックグラウンドプロセスとして実行し、永続的に実行する方法

pm2 を使用する:

pm2 は、Node.js アプリケーションを管理するためのプロセスマネージャーです。pm2 を使用すると、アプリケーションをバックグラウンドプロセスとして実行し、クラッシュした場合に自動的に再起動することができます。

  1. pm2 をインストールします:
npm install pm2 -g
  1. アプリケーションを pm2 で実行します:
pm2 start app.js
  1. アプリケーションのステータスを確認します:
pm2 status
pm2 stop app.js

Forever を使用する:

Forever は、Node.js アプリケーションを監視し、クラッシュした場合に自動的に再起動するツールです。

npm install forever -g
forever start app.js
forever list
forever stop app.js

systemd を使用する:

systemd は、Linux でサービスを管理するためのツールです。systemd を使用すると、Node.js アプリケーションをバックグラウンドサービスとして実行することができます。

  1. systemd サービスファイルを作成します:
[Unit]
Description=Node.js Application

[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/app.js

[Install]
WantedBy=multi-user.target
  1. サービスファイルを有効にします:
systemctl enable app.service
  1. サービスを起動します:
systemctl start app.service
systemctl status app.service
systemctl stop app.service

nohup を使用する:

nohup は、コマンドを実行し、そのコマンドが終了した後もプロセスを継続させるためのツールです。

nohup node app.js &

& は、コマンドをバックグラウンドで実行するためのシェルオペレータです。

node app.js &

これらの方法のいずれを使用しても、Node.js アプリケーションをバックグラウンドプロセスとして実行し、永続的に実行することができます。

注意事項:

  • アプリケーションがログファイルを出力する場合は、ログファイルの場所を指定する必要があります。



app.js:

// 1秒ごとにログを出力するアプリケーション

setInterval(() => {
  console.log('Hello, world!');
}, 1000);
pm2 start app.js
forever start app.js
[Unit]
Description=Node.js Application

[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/app.js

[Install]
WantedBy=multi-user.target
nohup node app.js &
node app.js &



Node.js をバックグラウンドプロセスとして実行するその他の方法

Docker は、コンテナ化技術です。Docker を使用すると、Node.js アプリケーションを独立した環境で実行することができます。

これらの方法は、上記で紹介した方法よりも複雑な場合があります。これらの方法を使用する場合は、それぞれの方法の詳細なドキュメントを参照してください。


node.js linux background-process


Node.js と npm で最新バージョンを常に使うためのコツ

コマンド:例:出力例:このコマンドは、指定されたパッケージの最新バージョンを表示します。このコマンドは、インストールされているすべてのパッケージの最新バージョンと現在インストールされているバージョンを比較して、古いバージョンを表示します。https://www...


【初心者向け】Expressで環境設定を行う3つの方法を徹底比較! app.configure vs 環境変数 vs 設定ファイル

使い方app. configure メソッドは、以下の構文で使用できます。environment: 設定を適用する環境の名前です。省略すると、すべての環境に設定が適用されます。callback: 設定を定義する関数です。この関数の中で、app...


PM2、Forever、systemd、cron:Node.jsサーバーを自動起動する4つの方法

PM2を使うPM2は、Node. jsアプリケーションを管理するためのプロセスマネージャーです。PM2を使うと、簡単にサーバーを自動起動することができます。PM2で自動起動する方法PM2をインストールします。PM2を使って、サーバーを起動します。...


Heroku での Express アプリケーションデプロイを成功させる! ./bin/www ファイルの秘密

Express 4.xにおける「./bin/www」ファイルは、Node. jsアプリケーションを起動するためのスクリプトです。主に以下の役割を果たします。アプリケーションの初期化: Expressアプリケーションに必要なモジュールを読み込み、設定を行います。...


AngularJS、Node.js、npm で発生する "ERROR in Cannot find module 'node-sass'" エラー:原因と解決策

解決策は次のとおりです:node-sass モジュールをインストールする:Node. js と npm のバージョンを確認する:node-sass モジュールは、Node. js 8 以降と npm 6 以降でのみサポートされています。古いバージョンの Node...


SQL SQL SQL SQL Amazon で見る



systemd で Node.js アプリをバックグラウンドサービスとして実行する

nohupコマンドは、ターミナルが閉じてもプロセスが続行するようにします。メリット手軽に実行できるプロセスの終了処理がうまくいかない場合があるログ管理が難しいクラッシュ時の復旧が難しい使用方法pm2を使うpm2は、Node. jsアプリケーションをデーモン化し、それを管理するためのツールです。