node.jsのサービスを永続化するには

systemctlコマンドで打てるようにservice化するのが確実でした。以下備忘録です。

永続化したいnode.js製サーバーは既にあるものとします。

環境:さくらのVPS、ubuntu20.04

foreverを導入

sudo npm install -g forever

serviceを作る

/etc/systemd/system/に移動。

分かりやすいサービス名.serviceファイルを新規作成。
以下のように設定。

[Unit]
Description = 分かりやすい詳細名
After = netwark.target

[Service]
ExexStart=foreverまでの絶対パス start 起動したいnode.jsサーバーまでの絶対パス
ExecStop=foreverまでの絶対パス stop 起動したいnode.jsサーバーまでの絶対パス
Restart=always
RestartSec=10
StandardOutput=ログファイルを置きたい場所
StandardError=ログファイルを置きたい場所
SyslogIdentifier=node-server
Type=forking
Environment=NODE_ENV=production
PORT=使用するポート番号

[Install]
WanteBy=multi-user.target

あとは sudo systemctl daemon-reload して
sudo systemctl start 〇〇.service
systemctl status 〇〇.service で確認。
起動できていたら sudo systemctl enable 

起動できてなかったら一度forever start app.jsするといけるかも。