Назад | Перейти на главную страницу

Как настроить Supervisor 3.3.1 с помощью скриптов npm node.js

Я использую версию 3.3.1.

Помимо моего /etc/supervisor/supervisord.conf файл:

[program:node]
directory=/srv/www
command=npm run demo
autostart=true
autorestart=true

Помимо моего package.json файл под скриптами:

"demo": "npm run prod",
"prod": "NODE_ENV=production NODE_PATH=\"$(pwd)\" node src/index.js"

Я пытаюсь закрыть программу узла через supervisorctl, однако это сохраняется.

root@dev-demo-karl:/srv/www# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.2  0.8  50280 18404 ?        Ss   08:43   0:00 /usr/bin/python /usr/bin/supervisord
root         8  0.2  2.4 1003412 49456 ?       Sl   08:43   0:00 npm
root        16  0.9  2.3 295224 47704 ?        SLl  08:43   0:02 /usr/bin/mongod --auth --fork --smallfiles --logpath /var/log/mongodb.log
root        44  0.0  0.0   4512   808 ?        S    08:43   0:00 sh -c npm run prod
root        45  0.2  2.4 1003924 49628 ?       Sl   08:43   0:00 npm
root        56  0.0  0.0   4512   716 ?        S    08:43   0:00 sh -c NODE_ENV=production NODE_PATH="$(pwd)" node src/index.js
root        60  1.5  7.0 1069880 145108 ?      Sl   08:43   0:04 node src/index.js
root        96  0.0  0.1  18244  3340 ?        Ss   08:44   0:00 bash
root       134  0.0  0.1  34424  2896 ?        R+   08:48   0:00 ps aux
root@dev-demo-karl:/srv/www# supervisorctl
mongod                           FATAL     Exited too quickly (process log may have details)
node                             RUNNING   pid 8, uptime 0:05:04
supervisor> stop node
node: stopped
supervisor> status
mongod                           FATAL     Exited too quickly (process log may have details)
node                             STOPPED   May 05 08:48 AM
supervisor> exit
root@dev-demo-karl:/srv/www# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.2  0.9  50280 18448 ?        Ss   08:43   0:00 /usr/bin/python /usr/bin/supervisord
root        16  0.9  2.3 296324 47704 ?        SLl  08:43   0:03 /usr/bin/mongod --auth --fork --smallfiles --logpath /var/log/mongodb.log
root        45  0.2  2.4 1003924 49628 ?       Sl   08:43   0:00 npm
root        56  0.0  0.0   4512   716 ?        S    08:43   0:00 sh -c NODE_ENV=production NODE_PATH="$(pwd)" node src/index.js
root        60  1.4  7.0 1069880 143996 ?      Sl   08:43   0:04 node src/index.js
root        96  0.0  0.1  18244  3340 ?        Ss   08:44   0:00 bash
root       136  0.0  0.1  34424  2892 ?        R+   08:48   0:00 ps aux

Мне интересно, как правильно настроить супервизор с помощью скрипта npm узла. Интернет-руководства не показали ничего, кроме того, что я сделал выше. Я не могу его остановить / запустить.

Я решил это, создав скрипт в моем package.json следующим образом:

...
"scripts": {
    "start-continuous": "supervisor server/server.js",
},
...

Это будет работать, если у вас установлен супервизор в вашем глобальном масштабе.

npm install supervisor -g

Теперь все, что я делаю, это: npm run start-continuous

Надеюсь, это поможет.