На моем Ubuntu 18.04.1 LTS я установил pipenv
, используя pip3
. Я также установил supervisor
.
Моя цель:
Я хочу, чтобы супервизор запустил мой test.sh
скрипт, содержащий команду pipenv run
.
Мой test.sh
скрипт:
#!/bin/bash
/root/local/bin/pipenv run echo "2222222"
Моя конфигурация супервизора в /etc/supervisor/conf.d/mysite.conf
:
[program:mysite]
command = /var/www/mysite/test.sh
user = root
stdout_logfile = /var/www/mysite/.gunicorn/logs/gunicorn_supervisor.log
redirect_stderr = true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8
Моя проблема:
Когда я запускаю /var/www/mysite/test.sh
прямо из консоли, все работает как положено. Однако, если супервизор запускает мой bash-скрипт, используя конфигурацию, указанную выше, выдается следующий невежественный след.
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pipenv/cli/command.py", line 396, in run
command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 2217, in do_run
ensure_project(three=three, python=python, validate=False, pypi_mirror=pypi_mirror)
File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 601, in ensure_project
validate=validate, skip_requirements=skip_requirements, system=system
File "/usr/local/lib/python3.6/dist-packages/pipenv/core.py", line 324, in ensure_pipfile
project.create_pipfile(python=python)
File "/usr/local/lib/python3.6/dist-packages/pipenv/project.py", line 644, in create_pipfile
config_parser = ConfigOptionParser(name=self.name)
File "/usr/local/lib/python3.6/dist-packages/pipenv/patched/notpip/_internal/baseparser.py", line 141, in __init__
assert self.name
AssertionError
Есть идеи, почему руководитель не может правильно запустить мой bash-скрипт? Я подозреваю, что это потому, что в pipenv при запуске супервизором отсутствуют определенные переменные окружения.
Обратите внимание, что все мои пути являются абсолютными, как предлагается здесь: настроить pipenv с супервизором