centos7でnode.js製サーバーをデーモン化する方法を書いてみる

By deruz3, 2022年8月22日

プロセスマネージャーに一般に必要とされる機能

以下の機能は標準のsystemdで満たしています

  • ターミナルからプロセスの切り離し
  • マシン再起動による自動起動
  • プロセスダウンによる自動再起動

実行してくれない機能

  • マルチコアスケールアウト(PM2)

設定ファイル

これをMinecraftで例えてみましょう

  • サーバーはMinecraft
  • 実行ユーザーはuser
/etc/systemd/system/minecraft.service
[Unit]
Description=minecraft server
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /home/user/server/app.js
WorkingDirectory=/home/centos/server
KillMode=process
Restart=always
User=user
Group=user

[Install]
WantedBy=multi-user.target

 

起動 終了 再起動する場合

自動起動を登録する

systemctl enable minecraft

起動する

systemctl start minecraft

再起動する

systemctl restart minecraft

停止する

systemctl stop minecraft

ちなみにステータスを確認したい時は

systemctl status minecraft

そんな感じで自動化できます。

What do you think?

You must be logged in to post a comment.

閲覧数 525 件