この記事は最終更新日から1年以上が経過しています。
@TanakaSoftwareLab
投稿日 2020/10/14
更新日 2020/10/26 ✏
systemdでnodeアプリケーションをサービス化
systemdを使ってnodeアプリケーションをサービス化しOS起動時に自動的に起動する方法です。
目次:
前提
- サービス名: node-app
- nodeパス: /home/pi/.nvm/versions/node/v10.22.1/bin/node
- nodeアプリケーションパス: /home/pi/app.js
サービスファイルを作成
$ sudo nano /etc/systemd/system/node-app.service
[Unit]
Description=Node.js Application
[Service]
PIDFile=/tmp/node-app.pid
Restart=always
KillSignal=SIGQUIT
WorkingDirectory=/home/pi/
# nodeのパスは `$ which node` の実行結果、
# nodeアプリケーションのパスは /home/pi/app.js とする
ExecStart=/home/pi/.nvm/versions/node/v10.22.1/bin/node /home/pi/app.js
[Install]
WantedBy=multi-user.target
サービスとして登録
## デーモンとして登録:
$ sudo systemctl enable node-app.service
サービスを起動・停止・再起動
## 起動:
$ sudo service node-app start
## 停止:
$ sudo service node-app stop
## 再起動:
$ sudo service node-app restart
サービスのログを確認
journalctl
コマンドを使ってsystemdで起動したサービスのログを確認できます: (-b
オプションで最近起動したサービスのログ)
$ journalctl -b
以上です。