Как получить файл в конфигурации супервизора?

Я хочу получить файл перед запуском команды, но это не работает.

[program:someprogram]
command=source /opt/pyenv.someenv/bin/activate && python scripts/some.py
directory=/root/p/somedir
autostart=true
autorestart=true
user=root

После того как я reread, update, statusЭто говорит

supervisor> reread
someprogram: changed
supervisor> update
someprogram: stopped
someprogram: updated process group
supervisor> status
someprogram              FATAL      can't find command 'source'

И я попробовал

command=. /opt/pyenv.someenv/bin/activate && python scripts/some.py

Сказано

someprogram              FATAL      command at '/usr/local/sbin/.' is a directory

2 ответа

Возможно, попытайтесь вызвать псевдоним python для конкретной среды, я знаю, что именно так Passenger использует правильную виртуальную среду при выполнении Django, по крайней мере.

/opt/pyenv.someenv/bin/python /root/p/somedir/scripts/some.py

source это встроенный Bash. Поэтому вам понадобится оболочка bash. Что-то вроде:

[program:someprogram]
command=/bin/bash -c "source /opt/pyenv.someenv/bin/activate && python 
scripts/some.py"
Другие вопросы по тегам