Nodejs forever无法启动

发布于 1周前 作者 ionicwang 来自 nodejs/Nestjs

Nodejs forever无法启动

各位大神,我想把项目部署到正式使用的环境上面,看了下forever,我先在本机测试: 我已经安装好了forever:
npm install -g forever
然后我运行forever -help也都正常,我切换到我的项目目录下直接 node app是可以启动项目的,但是我用forever就不行:
forever start --minUptime 100 --spinSleep 100 -l xxx.log -a app.js
上面是我的启动命令,启动之后显示的信息:
info: No forever processes running

是不是我用的forever版本太新还是怎么了,我看到论坛和别的网站的介绍使用,都不行,难道是要修改程式代码吗?
我的系统是:win7的,NodeJS:10.8


14 回复

Nodejs forever无法启动

各位大神,我在尝试将项目部署到生产环境时遇到了一些问题。我使用了 forever 来管理 Node.js 应用程序,但在本地测试时遇到了一些困难。以下是我遇到的具体情况:

已经安装好的 forever

npm install -g forever

验证安装

运行 forever -h 一切正常,这表明 forever 已经正确安装。

运行应用

在项目目录下直接运行 node app.js 可以成功启动项目,但使用 forever 却不行。

启动命令

我尝试使用以下命令来启动应用:

forever start --minUptime 1000 --spinSleepTime 1000 -l logs/forever.log -a app.js

错误信息

运行上述命令后,没有任何进程运行的信息输出:

info: No forever processes running

系统和环境

  • 操作系统:Windows 7
  • Node.js 版本:10.8.0

解决方案

首先,确认一下 forever 的版本是否与你的系统兼容。可以尝试以下步骤来排查问题:

  1. 检查 forever 版本

    forever -v

    如果版本过新或过旧,可能会导致不兼容的问题。建议查看官方文档确认当前版本是否支持你所使用的 Node.js 和操作系统。

  2. 日志文件路径 确保日志文件路径是正确的,并且有写入权限。例如:

    forever start --minUptime 1000 --spinSleepTime 1000 -l C:\path\to\your\logs\forever.log -a app.js
  3. 检查应用入口文件 确保 app.js 文件存在并且路径正确。你可以尝试直接运行该文件来确认它是否能正常工作。

  4. 简化命令 尝试简化命令来排除复杂参数的影响:

    forever start app.js
  5. 检查 Node.js 版本 确认 Node.js 版本是否与 forever 兼容。你可以考虑更新 Node.js 到最新稳定版:

    nvm install 16.14.0
    nvm use 16.14.0

通过以上步骤,你应该能够找到并解决 forever 无法启动的问题。如果问题依然存在,可以进一步查看 forever 的详细日志信息以获取更多线索。


我是切到我想买的目录下运行forever的命令:
forever start --minUptime 100 --spinSleepTime 100 -l xxx.log -a app.js
结果显示的信息是:
info: Forever processing file: app.js

然后我再浏览器中输入地址却什么都没有,日志里面的错误信息是:
events.js:72 throw er; // Unhandled ‘error’ event ^ Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit (child_process.js:771:34)

我想买中使用express,可是我直接node app却没有任何错误信息,请问是怎么回事?

不太熟悉参数的用法, 我之前用的 forever start app.js 那样是都正常的. 要不也试试看?

我也试了这个:

D:\GitHub\xxx>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 f
  or at least 1000ms
  info:    Forever processing file: app.js

D:\GitHub\xxx>

然后浏览器中打不开,

不晓得了, 看看 log 里有没有能找线索的吧. 等待大神来看问题

是不是大家使用forever都很顺畅啊?

你在win7中是不是项目放在C盘中有权限问题导致的?

另外值得注意的是forever在win7中安装v0.84+的时候会有问题的,你可以安装个v0.83版本试下 npm install forever=0.8.3

forever不是很成熟, 在生产环境ubuntu下,我使用node-foreman + cluster。

有没有可以类似forever的工具使用啊?我看了一个nssm的,但是是透过服务的方式使用,而且资料也是很少,

突然发现我的这个问题好像很多人都遇到了,却没有人给出个合理的结果,

GitHub上大家的讨论

有没有大神遇到并且解决的啊!

forever start -a -l forever.log -o out.log -e err.log app.js

我的命令和16#一样 一般偷懒的时候直接使用forever start -a -l forever.log app.js 这样

12.jpg

然后通过tail -f ~/.forever/forever.log来查看

从你的描述来看,forever没有成功启动你的Node.js应用。通常这种问题可能由多种原因引起,包括但不限于路径问题、权限问题或者命令参数配置不当。

首先,确保你正在项目根目录下运行命令,并且app.js文件确实存在。其次,检查命令是否正确。以下是基于你提供的信息调整后的命令示例:

forever start --minUptime 1000 --spinSleepTime 1000 -l logs/xxx.log -a app.js

这里有几个关键点需要注意:

  • --minUptime--spinSleepTime的时间单位应该是毫秒,所以如果你希望它们等待至少1秒,则应设置为1000而不是100。
  • 确保日志文件夹(例如logs/)存在,否则forever会尝试创建它。
  • -a参数表示追加到现有日志文件中,如果该文件不存在则会被创建。

另外,你可以尝试查看forever的日志来获取更多信息,通过以下命令:

forever list

这将列出所有被forever管理的进程及其状态。如果上述方法仍不能解决问题,可以尝试更新forever到最新版本,因为可能存在一些已知的问题已经被修复。

最后,考虑到你是在Windows 7上工作,某些功能可能不受支持或行为与预期不同。如果可能,建议升级到一个更新的操作系统版本,以获得更好的兼容性和性能。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!