Node.js Forever:如何运行我的npm应用程序

18

我现在正在运行我的Node.js应用程序,使用npm start命令。我想要在后台运行它。我找到了forever包来实现这个需求,但是不知道如何运行一个通常需要使用npm start命令才能启动的应用程序。那么我该如何使用forever来运行它呢?

我遵循了这篇Stack Overflow文章,但是出现了以下错误:

ENVIRONMENT=production forever start app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app.js

除此之外,还有没有更好的方法在后台运行Node.js?


5
我看不到错误,只有警告提示...? - Alex
3个回答

29

你做得很对。

这些警告只是提醒您缺少一些重要信息,因此它会分配默认值。确切地说,如果您的脚本在启动后不到一秒钟就崩溃/退出,forever 也将退出。


如果您想要摆脱这些警告:

forever start --minUptime 1000 --spinSleepTime 1000 app.js 
此外,您可以打开package.json文件,找到:
  "scripts": {
    "start": "node app.js"
  },

并将其更改为:

  "scripts": {
    "start": "forever start --minUptime 1000 --spinSleepTime 1000 app.js",
    "stop":  "forever stop app.js"
  },

现在你可以使用 npm start,它会自动调用 forever


3
对于使用express-generator并使用“npm start”启动应用程序的任何人,请将“app.js”替换为“`pwd`/bin/www”。 - zephinzer

16

-2

针对Linux系统 使用终端并进入超级用户模式,尝试以下代码

$ nohup node <location of of js file> &
$ exit

注意:在按回车键之前必须加上'&'符号

或者对于npm命令,只需通过cd命令进入存储package.json的位置。然后

$ nohup npm start &
$ exit

注意:在按回车键之前必须输入“&”

停止它

$ top

您可以在此处查看进程 ID,然后使用以下代码:

$ kill -9 <PROCESS_ID>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接