Node.js
node.jsをサービスとして実行する
サーチ…
前書き
多くのWebサーバーとは異なり、Nodeは、そのままの状態ではサービスとしてインストールされません。しかし、プロダクションでは、initシステムによって管理されるdæmonとして実行する方が良いです。
systemddæmonとしてのNode.js
systemdは、ほとんどのLinuxディストリビューションの事実上の initシステムです。 Nodeがsystemdで実行するように設定された後、 service
コマンドを使用してそれを管理することができます。
まず、設定ファイルが必要です。作成しましょう。 Debianのベースのディストリビューションの場合は、それがになります/etc/systemd/system/node.service
[Unit]
Description=My super nodejs app
[Service]
# set the working directory to have consistent relative paths
WorkingDirectory=/var/www/app
# start the server file (file is relative to WorkingDirectory here)
ExecStart=/usr/bin/node serverCluster.js
# if process crashes, always try to restart
Restart=always
# let 500ms between the crash and the restart
RestartSec=500ms
# send log tot syslog here (it doesn't compete with other log config in the app itself)
StandardOutput=syslog
StandardError=syslog
# nodejs process name in syslog
SyslogIdentifier=nodejs
# user and group starting the app
User=www-data
Group=www-data
# set the environement (dev, prod…)
Environment=NODE_ENV=production
[Install]
# start node at multi user system level (= sysVinit runlevel 3)
WantedBy=multi-user.target
次のようにして、それぞれアプリケーションの起動、停止、再起動が可能になりました。
service node start
service node stop
service node restart
起動時に自動的にnodeを起動するようにsystemdに指示するには、単にsystemctl enable node
。
つまり、ノードは現在、デーモンとして実行されています。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow