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

Сервер Node.js не запускается после перезагрузки

Конфигурация моей выскочки на сервере Node.js:

start on (net-device-up and runlevel [2345] and started td-agent)
stop on runlevel [016]

respawn

env HOME="/var/nodes"

script
    chdir $HOME
    exec /usr/local/bin/node index.js -c app/config/live >> /var/log/node/server.log 2>> /var/log/node/server_error.log
end script

Когда я бегу:

initctl check-config node

Получил вот что:

node
  start on: unknown job td-agent

Когда сервер загружается, узел не работает, но я могу запустить его вручную:

service node start
node start/running, process 1156

РЕДАКТИРОВАТЬ: Если я удалю and started td-agent, он запускается при загрузке. Но мне нужен запуск Node после td-agent. Как я могу исправить эту проблему?

Выскочка, кажется, ничего не знает о td-agent. Это потому, что выскочка распознает только задания, начатые выскочкой.

Наверное td-agent запускается скриптом в /etc/init.d. В этом случае вы не можете использовать выскочку для запуска. node и это зависит от td-agent.

Решение - не использовать выскочку. Вам нужно написать новый скрипт для /etc/init.d это начинается node.

Вы должны заставить его работать после td-agent запустить скрипт. Когда у вас есть сценарий, используйте update-rc.d команда, чтобы определить, когда он запускается.

Вот ссылка на пример минимального стартового скрипта. Это для liferay, но просто исправьте переменные среды и замените функции start () и stop () вашими собственными определениями. Пример сценария liferay initd.