节点服务器在永久停止之后运行

我有一个节点应用程序作为守护进程永远在服务器上运行。 在更新之后,我试图阻止它(稍后重新启动)。 但是,让我惊讶的是, forever stopall来什么也No forever processes running做, No forever processes running返回。 Forever list已经返回相同。 这两个命令我也尝试与sudo。

问题是,我可以清楚地看到节点仍在运行(我的应用程序工作正常)。 任何想法是什么错了?

PS我需要尽快滚动更新,所以我刚刚重新启动服务器。 但我仍然对这种情况感到好奇。

inputps aux | grep app.js后的PSS ps aux | grep app.js

 ubuntu 1320 0.0 2.2 663040 23232 ? Ssl Sep12 0:00 /usr/bin/nodejs /usr/lib/node_modules/forever/bin/monitor node_app/app.js ubuntu 1322 0.0 6.9 992564 70792 ? Sl Sep12 0:31 /usr/bin/nodejs /var/www/node_app/app.js root 9739 0.0 0.0 10468 936 pts/0 S+ 11:09 0:00 grep --color=auto app.js 

为什么发生这种情况? 我正在amazon aws上运行节点app.js。

       

网上收集的解决方案 "节点服务器在永久停止之后运行"

编辑:

我已经pipe理如何forever使用UID标记您的应用程序,然后不使用forever stopall 。 这是一个更清洁的方式,并将根据脚本永远杀死所有的进程。

您只需要添加--uid "scriptID"参数,然后依赖于它的所有进程将被一起控制。

启动一个新的守护进程forever start --uid "demo" --sourceDir /home/procdir -l /home/log/logfile -o /home/log/outputfile -a -d -v taskName

停止守护进程forever stop -uid "demo"

 -bash-4.1$ forever list info: Forever processes running data: uid command script forever pid id logfile uptime data: [1] Test /usr/bin/node grunt serve:test 18217 18224 /home/admin/logs/test/forever.log 59:20:21:10.512 data: [2] Dev /usr/bin/node grunt serve:dev 18347 18354 /home/admin/logs/dev/forever.log 59:20:19:56.87 data: [3] Prod /usr/bin/node grunt serve:prod 20411 20418 /home/admin/logs/prod/forever.log 59:18:58:28.697 

无论如何,你也可以运行(双手)这个命令来杀死进程:首先,杀死所有永远的任务(这将永远不会再次运行任务,当它被杀死):

  forever list | grep your_app | `awk '/\[0\]/{print "forever stop "$8}'` 

之后,当永远被杀死的时候,现在是时候杀死你的node_app了

 ps -efa | grep node | grep your_app | `awk '{ print "kill "$2}'` 

我强烈build议你不要使用killforever --uid一定会是最好的解决scheme。

希望这个解决scheme帮助你!

编辑:

由于forever --uid弃用,我试图findpipe理多个应用程序的名称(不使用 – 弃用方法)的方式。 看来使用configuration文件是解决scheme。 永远读取docs uidid参数仍然在configuration文件中使用。 经过一些testing,我已经pipe理该id是正确的参数:

这个例子:

 -bash-4.1$ pwd /jome/myuser/app -bash-4.1$ forever list info: No forever processes running -bash-4.1$ forever start ./forever/development.json 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: index.js -bash-4.1$ forever stop app4U info: Forever stopped process: uid command script forever pid id logfile uptime [0] BaoO /usr/local/bin/node index.js 41196 41197 app4U /Users/me/.forever/BaoO.log 0:0:0:5.995 

永远/ development.json

 { // Comments are supported "id": "app4U", "append": true, "watch": true, "script": "index.js", "sourceDir": "/jome/myuser/app" } 

index.js

 a=0; while (a<10) { a+=1 a-=1 }