Как автоматически запустить узел навсегда и икру использования () как sudo на Ubuntu?

Мое приложение периодически порождает скребок CasperJS:

spawn(CASPER_PATH, 
        [SCRIPTS_PATH + fileName, '--ssl-protocol=any', '--user='+user, '--scrapeId='+scrapeId, '--pass='+pass], 
        { detached: true }, 
        function (err, stdout, stderr) {});

Команда spawn() потребности работать удаются, чтобы быть чем-то вроде этого:

/usr/local/bin/casperjs/home/custom_user/casper-scripts/script.coffee - ssl-protocol=any - user=username123 - pass=pass123 - scrapeId=some_id_123

Я пытаюсь использовать навсегда, чтобы автоматически запустить сервер узла и проверить с помощью ping-запросов его, когда мне нужно царапанье.

Работает отлично, когда я выполняю его node server.js как зарегистрированный пользователь я создал, или как пользователь root. Также выполнения, большие, когда я работаю forever start server.js, но только если я делаю так как пользователь root - иначе, spawn() ничего не делает.

Я попытался добавить forever start (с полными и относительными путями, конечно) к crontab и для пользователя root и для обычного пользователя. В обоих случаях сервер работает на указанных портах, журналах, принимает запросы, но не порождает casperjs.

Я попытался добавить forever start server.js кому: /etc/rc.local даже - все еще ничто. Сервер работает, вход, функционируя очень хорошо, но единственный путь forever может работать, икра () - то, если я явно выполняю ее, в то время как зарегистрированный как пользователь root.

В конце веревки здесь...

Как я даю навсегда полномочия при начальной загрузке для порождения casperjs двоичного файла? Я должен изменить sudoers файл так или иначе? То, что папка chownредактор некорневым релевантным пользователем?

Править:

Я не знаю, почему я не думал для проверки то, о чем сообщала икра, таким образом, я запустил навсегда через crontab некорневого пользователя и добавил следующее после var sP = spawn():

sP.stdout.on('data', function(data) { console.log('stdout', data.toString('utf8')); });
sP.stderr.on('data', function(data) { console.log('stderr', data.toString('utf8')); });
sP.stdout.on('close', function(code) { console.log('close', code); });

Вывод:

Фатальный stdout: [Errno 2] Никакой такой файл или каталог; Вы устанавливали phantomjs?

близкая ложь

CasperJS является оберткой для PhantomJS. Это нечетно, поскольку я оба установил в системе:

casperjs --version 1.1.0-beta3 phantomjs --version 1.9.8

Кажется, что crontab не знает о существовании phantomj в/usr/local/bin?

РЕДАКТИРОВАНИЕ 2:

Crontab теперь похож на это:

@reboot PHANTOMJS_EXECUTABLE =/usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs NODE_ENV=production/usr/bin/forever запускаются/home/custom_user/endpoints-server-linux/server.js

phantomjs ошибка исчезла, но провал с casper, на самом деле работающим.

0
задан 29 January 2016 в 10:32

1 ответ

Вы могли попытаться дать полный путь навсегда при запуске его для rc.local. Мог бы быть то, что $PATH не установлен, поскольку это - Вы, когда Вы зарегистрированы.

Сбой, что, там некоторый журнал, который навсегда производит? Можете Вы класть для первого удара для вывода, куда Вы выполняете команду, как:

/usr/local/bin/forever start <full path to>/server.js | tee /tmp/forever-start.log

1
ответ дан 29 September 2019 в 13:26

Другие вопросы по тегам:

Похожие вопросы: