systemd を使用して Node.js アプリケーションをサービスとして実行する方法
Node.js をバックグラウンドプロセスとして実行し、永続的に実行する方法
pm2 を使用する:
pm2 は、Node.js アプリケーションを管理するためのプロセスマネージャーです。pm2 を使用すると、アプリケーションをバックグラウンドプロセスとして実行し、クラッシュした場合に自動的に再起動することができます。
- pm2 をインストールします:
npm install pm2 -g
- アプリケーションを pm2 で実行します:
pm2 start app.js
- アプリケーションのステータスを確認します:
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 アプリケーションをバックグラウンドサービスとして実行することができます。
- systemd サービスファイルを作成します:
[Unit]
Description=Node.js Application
[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/app.js
[Install]
WantedBy=multi-user.target
- サービスファイルを有効にします:
systemctl enable app.service
- サービスを起動します:
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