我想问是否有人知道如何永远运行可以加载 .env 文件。
目前,如果我们运行forever start app.js
,process.env.foo 就会变得未定义。
我正在尝试在我的 debian 10 vps 中运行此命令forever start npm start
,但我在终端中收到此错误,
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: npm
(node:23858) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:23858) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
error: Cannot start forever
error: …
Run Code Online (Sandbox Code Playgroud) 我一直在为我的 node.js 运行,这很棒,但是当服务器重新启动时,我必须重新运行命令。是否有任何关于如何在重新启动或启动时使其自动启动的建议,永远自动启动脚本。
让我们说它
永远/var/www/server.js
谢谢!
github页面非常清晰.我知道大家都爱永远,但我很困惑什么区别forever
和forever-monitor
实际上是,我应该在何种情况下使用该软件包.
他们提供相同的功能吗?
我试图使用这个应该工作的命令.当启动使用Express.js的服务器时,它似乎没有传递环境变量.这是针对这个开源项目,Bus Ticker.
PORT=8081; forever start ./website/app.js
In app.js
is有这一行所以我希望我可以在该命令行上设置环境变量,如上所示.
app.set('port', process.env.PORT || process.env.npm_package_config_port || 3000);
我有以下几点Dockerfile
:
FROM debian:stable
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_4.x | bash -
RUN apt-get install -y nodejs
RUN npm install forever -g
# App
ADD . /api
# Install app dependencies
RUN cd /api; npm install
EXPOSE 8080
CMD ["forever", "start", "/api/index.js", "8080"]
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,docker run -p 8080:8080 my-app@1.0.0
我收到以下消息:
警告:--minUptime 未设置。默认为:1000ms
警告:--spinSleepTime 未设置。如果脚本没有保持至少 1000 毫秒,您的脚本将退出
信息:永远处理文件:/api/index.js
和 docker 容器停止。
我需要为容器工作做些什么?
我正在尝试运行npm start
并让它永远运行。所以我执行了以下命令forever -c "npm start" /home/deploy/frontend
,其中提供的路径指向我的 Angular 2 应用程序的源文件夹。
当我npm start
在该文件夹中运行时,精简服务器启动并且一切正常。使用此命令但是,它试图访问/package.json
,但因为我在Linux上运行,这会不会导致成..../frontend/package.json
只是/package.json
。
是否有某种配置forever
方法可以从我的/home/deploy/frontend/package.json
.
日志(仅在 3 次尝试中剪掉了 1 次):
: /home/deploy/frontend:28134 - error: Script restart attempt #3
data: /home/deploy/frontend:28134 - npm ERR! Linux 4.4.0-72-generic
data: /home/deploy/frontend:28134 - npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start" "/home/deploy/frontend"
data: /home/deploy/frontend:28134 - npm ERR! node v7.10.0
data: /home/deploy/frontend:28134 - npm ERR! npm v4.2.0
data: /home/deploy/frontend:28134 - npm ERR! path /package.json
data: …
Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多关于使用nohup,forever和pm2保持节点在后台运行的帖子.但我仍然不确定哪个是最佳选择,并希望得到一些指导.
背景 - 在使用Ubuntu版本16的Apache服务器上运行MEAN堆栈应用程序.App.js位置是/ var/www /.当我退出终端时,我正在使用永远使应用程序在后台运行.我明白,如果我使用nohup,命令就是
nohup node /var/www/<project_name>/app.js > stdout.txt 2> stderr.txt &
Run Code Online (Sandbox Code Playgroud)
我想要确保的是,无论1)我如何退出终端(通过键入exit或只是单击右上角的X)和2)部署应用程序的操作系统,没有后台服务将以某种方式终止当我退出终端时,这会破坏我的应用程序.为此,运行应用程序的最佳方法是什么?nohup,forever还是pm2?我也明白有些人永远偏爱pm2.pm2提供什么比永远不提供?
我们永远使用并且运行了许多Node.js应用程序.当我们做"永远列表"时,我们看到:
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] /usr/bin/node app.js 27944 5656 /home/....log 1:16:27:52.625
...
Run Code Online (Sandbox Code Playgroud)
我们有许多应用程序都称为"app.js",所以我们真的不清楚哪个应用程序是什么.有没有办法永远配置,所以它可以包括脚本路径或什么?我们是否必须将所有"app.js"文件重命名为其他文件?
如何为正在运行的进程清除foreverjs的日志?我可以手动删除日志文件,但是这将导致永远不再记录日志。
我也看到过cleanlogs,但是它只会删除历史日志,而不会影响任何活动进程的日志。