28

我正在尝试使用永远命令运行节点服务器。我使用以下方法在全球范围内永久安装:

npm install forever -g

永久安装后,我尝试使用以下命令运行我的节点脚本:

node_modules\.bin\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

请帮我解决这个问题!

4

9 回答 9

7

除了永远建议您声明的配置警告外,这里没有问题。如果您在那里看到最后一条消息,它会告诉您它已经处理了您的脚本。只需运行forever list,您应该会看到您的脚本正在运行。

yum install npm我在通过yum 存储库(它必须与包安装程序的公式有关,或者可能缺少带有安装程序标志的别名,以便在幕后设置这些值。

这些并不意味着它不起作用。见下文,我使用节点站点的示例代码创建了一个 js 文件并手动运行它(我刷新了防火墙以暂时打开应用程序的端口,但您不需要):

[root@app1 ~]# vi example.js
[root@app1 ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[root@app1 ~]# node example.js 
Server running at http://127.0.0.1:1337/

然后我永远使用启动应用程序:

^C[root@app1 ~]# forever start example.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: example.js

现在我检查我的应用程序是否正在运行:

[root@app1 ~]# forever list
info:    Forever processes running
data:        uid  command       script     forever pid   logfile                 uptime       
data:    [0] dan1 /usr/bin/node example.js 23976   23978 /root/.forever/dan1.log 0:0:0:27.320 
[root@app1 ~]#
于 2013-09-14T16:02:44.550 回答
4

这解决了我的问题:

forever start -c node [path/to/app]

“-c” 表示 - 运行命令;然后通过 nodejs 运行

这样 - 默认情况下,您将获得 Respawn。1000 毫秒正常运行时间

取自:https ://github.com/nodejitsu/forever/issues/422 ,作者“Basarat”

于 2014-10-29T09:47:03.303 回答
2

如果您将 node js 与 express 框架一起使用,则脚本将不会开始使用:

forever start app.js

首先停止所有正在运行的应用程序:

forever stopall

使用此 Express 框架时,必须从以下内容开始:

forever start ./bin/www
于 2018-05-22T05:05:52.837 回答
1

首先停止所有正在运行的应用程序:

forever stopall

然后使用这个命令。它对我有用并解决了我的问题:

forever -w ./bin/www

你应该在 package.json 文件中找到它:

"scripts": {
    "start": "node ./bin/www"
  }

我希望它对你有帮助。

于 2015-09-14T06:29:44.077 回答
1

首先更改您的 package.json 脚本,例如

"scripts": {
      "start": "forever ./bin/www.js"
 }

比在 linux 控制台上启动这个命令:sudo npm start

仅适用于 Windows:npm start

于 2017-10-01T23:34:29.567 回答
1

也产生相同类型的输出但不启动应用程序的一件事是如果forever无法写入指定的日志文件。我有一个日志文件变得太大的情况,这阻止了进程启动。

于 2017-05-25T19:47:32.833 回答
1

我今天刚刚在 AWS Lightsail 服务器上遇到了这个问题,这里或其他地方的答案都没有任何效果。一切正常,直到从 NodeJS 10.x 升级到 13.x。我尝试永久删除和重新安装,更改文件和目录的权限等,但我不断收到 EACCES 错误。问题似乎是永远无法在其 .forever 目录中创建目录。唯一有效的是执行以下操作:

1) 删除 .forever 文件夹及其所有子文件夹和内容。对我来说,这是按如下方式完成的:sudo rm -rf /home/bitnami/.forever

2)手动重新创建.forever文件夹:sudo mkdir /home/bitnami/.forever

3)手动设置.forever文件夹的权限:sudo chmod -R o+rwx /home/bitnami/.forever

4) 手动重新创建 .forever/pids 文件夹: sudo mkdir /home/bitnami/.forever/pids

5)手动设置.forever/pids文件夹的权限:sudo chmod -R o+rwx /home/bitnami/.forever/pids

6) 手动重新创建 .forever/sock 文件夹:sudo mkdir /home/bitnami/.forever/sock

7)手动设置.forever/sock文件夹的权限:sudo chmod -R o+rwx /home/bitnami/.forever/sock

8) 再次使用 sudo 命令运行我的 NodeJS 应用程序。

9)列出永远在运行的进程,并验证我的应用程序在那里。

我不知道为什么我必须经历所有这些,因为递归地设置权限应该做同样的事情,但是在这样做之后,永远开始像以前一样完美地运行。

希望这可以帮助某人。

于 2020-05-27T12:04:01.813 回答
0
forever stopall

cd /<app-folder>

forever -w ./bin/www

这只是在 Google Cloud Bitnami VM 中为我工作

于 2022-02-04T02:09:45.140 回答
-8

如果你设置一个全局模块(-g 选项)“永远”在 $path

forever start app.js

应该管用。

于 2013-05-23T14:57:11.210 回答