Подтвердить что ты не робот

Node.js процессы с тем же именем навсегда закрываются при попытке закрыть только один

Я развертываю два приложения node.js на aws, два приложения находятся на пути, показанные как

/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 закрыты с информацией вроде этого

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, как избежать этого, закрыв только один процесс

4b9b3361

Ответ 1

Вы можете убить только один процесс, используя индекс процесса, показанного в команде forever list. Например, если вы наберете forever stop 1, только процесс с индексом 1 будет убит

Ответ 2

Вы можете использовать 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