2015-05-02 2 views
2

Я запускаю пакетный веб-сервер nodejs, который позволяет читать файлы epub (Readium-JS), и он запускается с помощью команды grunt.Как я могу запустить grunt в качестве демона?

Однако, если я запускаю это на своем VPS, сервер умирает, как только мое терминальное соединение заканчивается.

Как запустить эту задачу в качестве демона?

Я смотрел варианты, такие как grunt-forever и grunt-daemon, но способ, которым Gruntfile записывается с использованием load-grunt-config, путается с моим умом, и я не могу собрать вместе, как изолировать код сервера.

+0

Вам действительно нужно начать с ворчания? [pm2] (https://www.npmjs.com/package/pm2) - самый популярный диспетчер процессов, но я не знаю, что он будет работать с хрюканьем. – loganfsmyth

+0

Да, кажется, что требуется вызов grunt из командной строки. Кажется, нет файла, в котором я могу запустить «node file.js», который будет правильно загружать сервер, иначе я бы бросил его вместе уже навсегда. Кажется, хрюкать - это собрать конфигурацию, а затем загрузить ее, которая, похоже, не вызвана ничем, кроме запуска grunt. --- Тем не менее, я пробовал это и, похоже, работает. Если вы добавите свой комментарий в качестве ответа, я приму его как правильно, спасибо! – Antoine

ответ

1

Вот решение, которое я нашел:

Как было отмечено выше, с помощью pm2

Однако, когда я побежал

pm2 start grunt 

я получил ошибку о том, что модуль хрюкать не существует, что было странно.

Так что я в конечном итоге написание сценария, который работал:

- start.js -

var pm2 = require('pm2'); 

pm2.connect(function() { 
    pm2.start({ 
    script : '/usr/local/bin/grunt',   // Script to be run 
    args: '--force', 
    }, function(err, apps) { 
    pm2.disconnect(); 
    }); 
}); 

После запуска узла start.js из командной строки, все плавал гладко.

Смежные вопросы