我的情况是这样的:
我正在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>
如果我再次启动或重新启动它,它将继续消耗大量资源。我发现我需要离开它几个小时才能重新启动。
我的问题是,是否还有其他命令可以确保该服务器的每个实例,资源都已停止,因此我可以立即再次使用它?
谢谢
答案 0 :(得分:1)
您可以使用以下四种不同的方式使用永久运行的id来停止Forever守护程序:
我可以看到使用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 0
或forever stop 1
或forever stop 2
这里有0、1、2进程索引data:[0]
,data:[1]
答案 3 :(得分:0)
如果这是您想要的,可能会强行杀死所有节点进程。
按照此答案杀死所有节点进程:https://stackoverflow.com/a/14790921/5055850