Node.js服务器不会永远停止0

时间:2020-03-23 22:36:17

标签: javascript node.js

我的情况是这样的:

我正在domain.com:54321上运行一个node.js服务器

我用来启动服务器的命令是:

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

但是,在某些情况下,我们的代码进入了高要求的功能,导致脚本工作非常缓慢或无响应。我们正在尝试对其进行优化。

在这种情况下,我停止服务器,然后根据需要启动新服务器,让我们说domain.com:67890

forever stop 0

但是,如果我想以此来重新启动最近停止的node.js服务器domain.com:54321(或重新启动而不是停止它),我希望这些过程能够像以前一样又快又快地停止并运行。 / p>

如果我再次启动或重新启动它,它将继续消耗大量资源。我发现我需要离开它几个小时才能重新启动。

我的问题是,是否还有其他命令可以确保该服务器的每个实例,资源都已停止,因此我可以立即再次使用它?

谢谢

4 个答案:

答案 0 :(得分:1)

您可以使用以下四种不同的方式使用永久运行的id来停止Forever守护程序:

  • 索引
  • id
  • uid
  • pid

我可以看到使用pid停止永久运行的守护程序的答案之一,我可以添加其他方法。

列出正在运行的Forever实例:

- (UIModalPresentationStyle)uiviewController_modalPresentationStyle { return UIModalPresentationFullScreen; }

信息:永远在运行的进程

$ forever list

|data: | index | uid | command | script |forever pid|id | logfile |uptime | |------|-------|-----|------------------|-------------|-----------|-----|------------------------|--------------| |data: | [0] |f4Kt |/usr/bin/nodejs | src/index.js|2131 | 2146|/root/.forever/f4Kt.log | 0:0:0:11.485 | 索引

$ forever stop 0 id

$ forever stop 2146 uid

$ forever stop --uid f4Kt pid

答案 1 :(得分:0)

要确保停止该过程,您可以使用pid option

forever start -l forever.log -a -o out.log -e err.log --pidFile ~/app_pid index.js

forever stop --pidFile ~/app_pid

答案 2 :(得分:0)

先运行forever list,然后运行forever stop **id**

这是示例输出

$ forever list
info:    Forever processes running
data:        uid  command                                                  script forever pid   id logfile                          uptime        
data:    [0] 9Xzw ng serve --host 0.0.0.0 --port 300         1111   2312    /home/ec2-user/.forever/9Xzw.log 1:3:20:50.412 
data:    [1] wOj1 npm run-script app-start-dev                                    29500   24978    /home/ec2-user/.forever/wOj1.log 0:0:5:3.433

检查您的进程ID并杀死

forever stop 0forever stop 1forever stop 2

这里有0、1、2进程索引data:[0]data:[1]

答案 3 :(得分:0)

如果这是您想要的,可能会强行杀死所有节点进程。

按照此答案杀死所有节点进程:https://stackoverflow.com/a/14790921/5055850