当试图closures只有一个node.js永远同名的进程是closures的

我正在aws上部署两个node.js应用程序,这两个应用程序位于如下所示的path中

/home/ubuntu/nodes/app1/app.js /home/ubuntu/nodes/app2/app.js 

分别

在后台运行node.js应用程序,我永远用来启动两个应用程序,如此

  $ sudo forever start /home/ubuntu/nodes/app1/app.js $ sudo forever start /home/ubuntu/nodes/app2/app.js 

所以通过在后台进程中运行两个node.js应用程序永远可以很好地工作。 但是,当我试图用这样的永远命令来停止一个进程。

  $ sudo forever stop /home/ubuntu/nodes/app1/app.js 

意外的是,两个node.js进程都是用这样的信息closures的

 info: Forever stopped process: data: uid command script forever pid logfile uptime [0] r2pZ /usr/bin/nodejs app.js 24852 24854 /root/.forever/r2pZ.log 0:0:1:14.775 [1] 9f2h /usr/bin/nodejs app.js 24870 24872 /root/.forever/9f2h.log 0:0:0:58.733 

我认为这是因为两个node.js进程具有相同的名称 – app.js,如何通过closures只有一个进程

您可以使用forever list命令中显示的进程的索引只杀死一个进程。 例如,如果您键入forever stop 1 ,则只有索引为1的进程将被forever stop 1

你可以使用一个uid(见这里 ):

 $ sudo forever --uid "app1" start app.js $ sudo forever --uid "app2" start app.js 

并停止:

 $ sudo forever stop app1 

更新
--uid选项已弃用。 现在你可以使用--pidFile选项。 例:

 forever start --pidFile /some/path/app1.pid app.js forever start --pidFile /some/path/app2.pid app.js 

并停止:

 forever stop --pidFile /some/path/app1.pid