小编典典

如何将node.js应用程序作为后台服务运行?

node.js

多年来,由于这篇文章引起了很多关注,因此我在文章的底部列出了每个平台的最佳解决方案。


原始帖子

我希望我的node.js服务器在后台运行,即:当我关闭终端时,我希望服务器继续运行。我已经用谷歌搜索并提出了本教程,但是它没有按预期工作。因此,我没有使用该守护程序脚本,而是以为我只使用了输出重定向(该`2>&1

file`部分),但这也不会退出-我在终端中出现空白行,就像它在等待输出/错误一样。

我也尝试过将进程置于后台,但是一旦关闭终端,进程也会被终止。

那么,当我关闭本地计算机时如何使它运行?



阅读 370

收藏
2020-07-07

共1个答案

小编典典

2015年的答案 :几乎每个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=nogroup
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

从开始systemctl start myapp

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

查看日志 journalctl -u myapp

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

2020-07-07