从How do I run a Node.js application as its own process?个答案中复制我自己的答案
2015 answer:几乎每个Linux发行版都有systemd,也就是forever, monit, PM2, etc are no longer necessary - your OS already handles these tasks.
制作一个myapp.service
文件(显然,用你的应用程序名替换"myapp"):
[Unit]
Description=My app
[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp
[Install]
WantedBy=multi-user.target
Note if you're new to Unix: /var/www/myapp/app.js
应该在第一行有#!/usr/bin/env node
,并将可执行模式打开chmod +x myapp.js
.
将您的服务文件复制到/etc/systemd/system
.
从systemctl start myapp
开始.
使其在开机时以systemctl enable myapp
的速度运行.
请参阅带有journalctl -u myapp
的日志(log)
这取自100,其中还包括生成AWS/DigitalOcean/Azure CloudConfig以构建Linux/node服务器(包括.service
文件)的命令.