为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2019-06-29 14:41:26
如何运行node.js应用程序作为后台服务?由于这篇文章多年来得到了很多关注,我已经列出了每一个平台在这篇文章底部的顶级解决方案。原始员额:我希望node.js服务器在后台运行,即:当我关闭我的终端时,我希望我的服务器继续运行。我搜索过这个,想出了这个补习然而,它并不像预期的那样工作。因此,我不使用守护进程脚本,而是使用输出重定向(2>&1 >> file),但这也不能退出-我的终端中有一个空行,就像它在等待输出/错误一样。我也试着把这个过程放在后台,但是一旦我关闭我的终端,这个过程也会被终止。那么,当我关闭本地计算机时,如何才能让它继续运行呢?顶解:系统d(Linux)朗赫德(Mac)节点窗口(窗户)PM2(node.js)
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

几乎每个linux发行版都附带了systemd,这意味着永远,monit,pm 2等不再是必需的-您的操作系统已经处理了这些任务。.

使出myapp.service文件(显然,将“myapp”替换为应用程序的名称):

[Unit]Description=My app[Service]ExecStart=/var/www/myapp/app.jsRestart=alwaysUser=nobody# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'Group=nogroupEnvironment=PATH=/usr/bin:/usr/local/binEnvironment=NODE_ENV=productionWorkingDirectory=/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/DigitalSea/Azure CloudConfig以构建Linux/节点服务器的命令(包括.service档案)。


查看完整回答
反对 回复 2019-06-29
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

更新-如下文一项答复所述,PM2永远失去了一些很好的功能。考虑使用它。

原始答案

使用诺赫普:

nohup node server.js &

编辑我想补充的是,接受的答案确实是可行的。我一直在使用需要熬夜的实例。我喜欢做npm install -g forever所以它在节点路径上,然后做forever start server.js


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 1009 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信