我正在尝试使用forever命令运行节点服务器。 我使用以下方式全球安装:
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
请帮我解决这个问题!
答案 0 :(得分:6)
除了永远建议您声明的配置警告之外,这里没有问题。如果你在那里看到最后的消息,它会告诉你它已经处理了你的脚本。只需运行forever list
即可看到您的脚本正在运行。
我在通过yum repository(yum install npm
)安装npm然后永远安装时遇到了同样的事情,而当我通过shell脚本安装node和npm然后永远安装时,它不会发生。它必须与程序包安装程序的公式有关,或者可能缺少带有安装程序标志的别名,以便在场景后面设置这些值。
那些并不意味着它不起作用。请参阅下文我使用节点站点中的示例代码创建了一个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 ~]#
答案 1 :(得分:2)
这解决了我的问题:
forever start -c node [path/to/app]
" -c"意思是 - 运行commnad;然后只通过nodejs
运行这样 - 默认情况下你得到Respawn为min。 1000毫秒正常运行时间
取自:https://github.com/nodejitsu/forever/issues/422," Basarat"
答案 2 :(得分:1)
首先停止所有正在运行的应用:
forever stopall
然后使用此命令。它对我有用并解决了我的问题:
forever -w ./bin/www
你应该在package.json文件中找到它:
"scripts": {
"start": "node ./bin/www"
}
我希望它可以帮到你。
答案 3 :(得分:0)
如果forever
无法写入指定的日志文件,那么也会生成相同类型的输出,但不启动应用程序的一件事。我有一个案例,日志文件变得太大,这阻止了进程的启动。
答案 4 :(得分:0)
首先更改你的package.json脚本,如
"scripts": {
"start": "forever ./bin/www.js"
}
在linux控制台上启动此命令:sudo npm start
for windows just:npm start
答案 5 :(得分:0)
如果您使用带有快速框架的节点js,那么脚本将不会开始使用:
forever start app.js
首先停止所有正在运行的应用:
forever stopall
当使用此Express框架时,必须以:
开头forever start ./bin/www
答案 6 :(得分:0)
我今天刚刚在AWS Lightsail服务器上遇到了这个问题,这里或其他地方的答案都没有任何作用。从NodeJS 10.x升级到13.x之前,一切工作正常。我尝试永久删除并重新安装,更改文件和目录的权限等,但我不断收到EACCES错误。问题似乎是,永远无法在其.forever目录中创建目录。唯一有效的方法是执行以下操作:
1)删除.forever文件夹及其所有子文件夹和内容。对我来说,这是通过以下方式实现的: 须藤rm -rf /home/bitnami/.forever
2)手动重新创建.forever文件夹: 须藤mkdir /home/bitnami/.forever
3)手动设置.forever文件夹的权限: 须藤chmod -R o + rwx /home/bitnami/.forever
4)手动重新创建.forever / pids文件夹: 须藤mkdir /home/bitnami/.forever/pids
5)手动设置.forever / pids文件夹的权限: 须藤chmod -R o + rwx /home/bitnami/.forever/pids
6)手动重新创建.forever / sock文件夹: 须藤mkdir /home/bitnami/.forever/sock
7)手动设置.forever / sock文件夹的权限: 须藤chmod -R o + rwx /home/bitnami/.forever/sock
8)使用sudo命令再次永久运行我的NodeJS应用。
9)列出永远运行的进程,并确认我的应用程序在那里。
我不确定为什么必须经历所有这些,因为递归设置权限应该做同样的事情,但是这样做之后,永远都可以像以前一样完美地运行。
希望这对某人有帮助。
答案 7 :(得分:-7)
如果你设置了一个模块globaly(-g选项),“forever”就在$ path
中forever start app.js
应该有用。