Ответ 1
Вы можете убить только один процесс, используя индекс процесса, показанного в команде forever list
. Например, если вы наберете forever stop 1
, только процесс с индексом 1 будет убит
Я развертываю два приложения 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, как избежать этого, закрыв только один процесс
Вы можете убить только один процесс, используя индекс процесса, показанного в команде forever list
. Например, если вы наберете forever stop 1
, только процесс с индексом 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