LoginSignup
1
0

nodejsサーバーをsystemdに登録する!

Last updated at Posted at 2024-03-13

はじめに

  • linuxにSSHを使って接続中
  • コマンドでサーバーの起動・停止をしたい
  • 再起動したときにサーバーを自動で起動するようにしたい!
  • nodejsのサーバーをコマンドラインで起動していて、再起動するときに毎回Ctrl+Cnode index.jsはめんどくさい!

1. systemdへの登録

nanoなどで下のファイルを作成して編集します
sudo nano /etc/systemd/system/myNodeServer.service

/etc/systemd/system/myNodeServer.service
[Unit]
# プログラムの名前
Description= Node.js Server

[Service]
Type=simple
User=username
# nodejsの動いているディレクトリ
WorkingDirectory=/home/username/Desktop/node/
# 起動するためのスクリプトの配置先
ExecStart=/home/username/Desktop/node/start.sh 

# 落ちたら自動で再起動する設定
Restart=always
RestartSec=200

# 出力先(今回は標準のsyslog)
StandardOutput = syslog
StandardError = syslog
# syslogでプログラムを判別するための名前
SyslogIdentifier = myNodeServer

[Install]
WantedBy=multi-user.target

その他の細かい設定などはほかの記事を見てください

2. 起動用スクリプトを用意

/home/username/Desktop/node/start.sh
#!/bin/bash
cd /home/username/Desktop/node
node index.js

環境に合わせて変えてください

3. systemdの再読み込み

  • sudo systemctl daemon-reload
    でファイルを再読み込み

  • sudo systemctl restart myNodeServer.service
    で再起動

    少し経ったら

  • systemctl status myNodeServer.service
    で状態を確認してみましょう

● myNodeServer.service - Node.js Server
     Loaded: loaded (/etc/systemd/system/myNodeServer.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-03-01 14:48:59 JST; 1 weeks 5 days ago
   Main PID: 23285 (start.sh)
      Tasks: 13 (limit: 2057)
        CPU: 8min 46.411s
     CGroup: ...

myNodeServer.service - Node.js Server の左が緑色の になっていて
Active: active (running) と出ていれば成功です!


もしダメだった場合は
journalctl -u testapp でログを確認してみましょう
どこが間違っているのか教えてくれます。
あとはGoogle先生に聞いてみましょう

おわり

sudo systemctl enable myNodeServer.serviceで再起動したときに自動で起動するようになります

状態の確認 systemctl status myNodeServer.service
起動 sudo systemctl start myNodeServer.service
停止 sudo systemctl stop myNodeServer.service
これらが1コマンドでできるようになりました!


読んでくれてありがとうございました!
初めての記事なので改善点や間違いなどあるかもしれませんが、見つけたらコメントしていただけると助かります!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0