команда работает прямо в подпроцессе python при запуске на терминале, но не работает при выполнении в crontab - PullRequest
0 голосов
/ 14 июля 2020

Пытаюсь ежедневно запускать тесты nightwatch из crontab. Все работает нормально, когда я запускаю свой python скрипт на терминале macOS, но как только я запускаю задание cron, вызывая свой python скрипт. Произошла ошибка:

"env: node: No such file or directory"

Я пытался установить Ниже приведена команда, которую я пытаюсь запустить из подпроцесса python:

cmd_run =["/usr/local/bin/yarn test /Users/mytest/path/ --tag dbg"]
child_env = os.environ.copy() // inherit shell env setting ? 

with open(full_log, 'w') as fd:
        process=subprocess.Popen(cmd_run, stdout=fd, stderr=fd, shell=True, env=child_env)

Фактическая команда, которую мне нужно запустить, это:

E2E_BASEHOST=https://<myhost> E2E_ENV=bk E2E_TESTS_DIRECTORY=./bk/tests **node**  node_modules/nightwatch/bin/runner.js -c ./node_modules/@bk/e2e-testing-configuration/src/nightwatch.conf.js
--group affiliates/bookings2/tests/src/app/ --tag bsb --retries 2

Я думаю, это потому, что подпроцесс не может найти "узел", я запускаю "какой узел" на моем терминале. Его можно найти здесь:

/usr/local/bin/node

Так что же я? здесь не хватает?

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете поместить это в свой crontab:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
...