systemdでnodeアプリケーションをサービス化の画像
田中ソフトウェアラボ @TanakaSoftwareLab
投稿日 2020/10/14
更新日 2020/10/26 ✏

Linux

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

以上です。


田中ソフトウェアラボ
田中ソフトウェアラボ @TanakaSoftwareLab
田中ソフトウェアラボ公式アカウント。「芽萌丸」運用情報や田中ソフトウェアラボからのお知らせを発信いたします。プログラミング関連記事(@programming)も担当。お問合せは Chatwork ID: akirattii まで。