Talvez tente chamar o alias python do ambiente específico, eu sei que é assim que o Passenger usa o ambiente virtual correto ao executar o Django pelo menos.
/opt/pyenv.someenv/bin/python /root/p/somedir/scripts/some.py
Eu quero criar um arquivo antes de executar um comando, mas isso não funciona.
[program:someprogram]
command=source /opt/pyenv.someenv/bin/activate && python scripts/some.py
directory=/root/p/somedir
autostart=true
autorestart=true
user=root
Depois que eu reread
, update
, status
, diz
supervisor> reread
someprogram: changed
supervisor> update
someprogram: stopped
someprogram: updated process group
supervisor> status
someprogram FATAL can't find command 'source'
E eu tentei
command=. /opt/pyenv.someenv/bin/activate && python scripts/some.py
Ele disse
someprogram FATAL command at '/usr/local/sbin/.' is a directory
Talvez tente chamar o alias python do ambiente específico, eu sei que é assim que o Passenger usa o ambiente virtual correto ao executar o Django pelo menos.
/opt/pyenv.someenv/bin/python /root/p/somedir/scripts/some.py
source
é um bash embutido. Você vai querer um shell bash. Algo como:
[program:someprogram]
command=/bin/bash -c "source /opt/pyenv.someenv/bin/activate && python
scripts/some.py"
Tags supervisord