[英]Node.js server is not stopping on forever stop 0
我的情況是這樣的:
我在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
(或重新啟動它而不是停止它),我希望這些進程能夠停止並再次以新鮮和快速的方式運行。
如果我再次啟動它或重新啟動它,它會繼續占用大量資源。 我發現我需要將它放置幾個小時才能重新啟動它。
我的問題是,是否有任何其他命令可以確保該服務器的每個實例、資源都停止,以便我可以立即再次開始使用它?
謝謝
您可以使用永久運行的 id 使用四種不同的方式停止 Forever 守護程序:
我可以看到使用 pid 停止永遠運行的守護進程的答案之一,我可以添加其他方法。
列出正在運行的 Forever 實例:
$ 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
索引
$ forever stop 2146
id
$ forever stop --uid f4Kt
uid
$ forever stop --pidFile 2131
pid
為確保停止進程,您可以使用pid 選項:
forever start -l forever.log -a -o out.log -e err.log --pidFile ~/app_pid index.js
forever stop --pidFile ~/app_pid
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]
如果這是您想要的,可能會強行殺死所有節點進程。
按照這個答案殺死所有節點進程: https ://stackoverflow.com/a/14790921/5055850
檢查一下,如果您的端口是 8000 ,它將永遠停止
sudo kill -9 `sudo lsof -t -i:8000`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.