一尘不染

如何将Node.js应用程序作为其自己的进程运行?

node.js

部署Node.js的最佳方法是什么?

我有一个Dreamhost
VPS(这就是他们所说的VM),并且我已经能够安装Node.js并设置代理。只要我保持打开节点时启动的SSH连接就可以了。


阅读 291

收藏
2020-07-07

共1个答案

一尘不染

2016年答案 :几乎每个Linux发行版都随附systemd,这意味着 永久,monit,PM2等都不再需要-您的OS已经可以处理这些任务

制作一个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=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp

[Install]
WantedBy=multi-user.target

请注意,如果您不熟悉Unix,则 /var/www/myapp/app.js应该#!/usr/bin/env node在第一行。

将您的服务文件复制到该/etc/systemd/system文件夹中。

通过告诉systemd有关新服务的信息systemctl daemon-reload

从开始systemctl start myapp

使它能够在启动时运行systemctl enable myapp

查看日志 journalctl -u myapp

这取自 我们如何在Linux版2018年上部署节点应用程序 ,该 版本
还包括用于生成AWS / DigitalOcean / Azure CloudConfig来构建Linux
/节点服务器(包括.service文件)的命令。

2020-07-07