Не в состоянии использовать Node.js и Crontab - PullRequest
0 голосов
/ 06 февраля 2019

Я знаю, что вы можете запустить скрипт Node.js в Crontab, выполнив что-то вроде:

0 * * * * node /path/to/your/script.js

Но я хочу запустить приложение Node.js, а не скрипт, используя Crontab.Я создал приложение Node.js, чтобы написать несколько автоматических тестов с использованием Mocha, Chai и Selenium, и я хочу периодически запускать его с помощью Crontab.Как бы я поступил так?В настоящее время я запускаю свое приложение, записывая в командной строке:

npm run api-pro

Где api-pro - это скрипт из моего package.json, который вызывает некоторые тесты для производственного API.

Обратите внимание, что если я просто пытаюсь написать задание Crontab с помощью команды "npm run api-pro", оно не распознает команду npm (и, очевидно, у меня на компьютере установлен Node).

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Я предполагаю, что пользователь cron use не настраивает PATH так же, как ваш пользователь, и не знает node, ни npm.

Что вы можете попробоватьэто использовать команду which node, чтобы узнать, где находится двоичный файл вашего узла (/some/path/to/node)

Затем вы можете использовать абсолютный путь в вашем crontab:

0 * * * * /some/path/to/node /path/to/your/script.js

РЕДАКТИРОВАТЬ:

Разница между добавлением node и npm к $PATH и использованием абсолютных путей заключается в том, что абсолютный путь будет работать для одного исполняемого файла, поскольку Linux не придется искать PATH.Добавление к PATH заставит Linux распознавать node и npm так же, как у вашего пользователя.Тот факт, что они находятся в одной папке, не влияет на это.

0 голосов
/ 06 февраля 2019

Полагаю, что с помощью crontab вы запускаете приложение для узлов на компьютере с Linux, так почему бы вам не написать простой скрипт bash?

run_test.bash

#!/bin/bash
cd /path/to/your/app && \
npm run api-pro

тогда ваш crontab должен выглядеть так:

0 * * * * /path/to/your/bash/script/run_test.bash

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

$ chmod u+x run_test.bash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...