猿问

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

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

由于这篇文章多年来得到了很多关注,我已经列出了每一个平台在这篇文章底部的顶级解决方案。


原始员额:

我希望node.js服务器在后台运行,即:当我关闭我的终端时,我希望我的服务器继续运行。我搜索过这个,想出了这个补习然而,它并不像预期的那样工作。因此,我不使用守护进程脚本,而是使用输出重定向(2>&1 >> file),但这也不能退出-我的终端中有一个空行,就像它在等待输出/错误一样。

我也试着把这个过程放在后台,但是一旦我关闭我的终端,这个过程也会被终止。

那么,当我关闭本地计算机时,如何才能让它继续运行呢?


顶解:


慕标5832272
浏览 1025回答 3
3回答

慕娘9325324

几乎每个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档案)。

人到中年有点甜

更新-如下文一项答复所述,PM2永远失去了一些很好的功能。考虑使用它。原始答案使用诺赫普:nohup node server.js &编辑我想补充的是,接受的答案确实是可行的。我一直在使用需要熬夜的实例。我喜欢做npm install -g forever所以它在节点路径上,然后做forever start server.js
随时随地看视频慕课网APP

相关分类

Node.js
我要回答