Upstart проблема с virtualenv - Python / Ubuntu - PullRequest
1 голос
/ 29 декабря 2010

Я использую upstart для запуска этого скрипта:

pre-start script
    sudo export WORKON_HOME=~/.envs
    sudo source /usr/local/bin/virtualenvwrapper.sh
    sudo workon env1
end script

start on runlevel [2345]
stop on runlevel [!2345]

exec python /home/radiant/www/staging/django_project/manage.py celerycam > /home/radiant/www/staging/logs/celerycam.log

respawn

respawn limit 10 90

Без pre-start script это работает, с блоком скрипта я получаю это:

start: Задание не удалось запустить


Мое исправление:

Вместо поиска с использованием интерпретатора Python в виртуальной среде работает нормально:)

должен был подумать об этом раньше!


Есть идеи, что это может быть?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Я не начинающий эксперт, но я думаю, что проблема в том, что вы пытаетесь выполнить эти команды. Если upstart использует стандартный «sudo», вы пытаетесь запускать функции оболочки в виде команд, чего вы не можете сделать.

Попробуйте сбросить часть sudo, чтобы посмотреть, работает ли она.

pre-start script
    export WORKON_HOME=~/.envs
    source /usr/local/bin/virtualenvwrapper.sh
    workon env1
end script
1 голос
/ 29 декабря 2010

Это может быть то, что разрешает ~ при работе в Upstart. Попробуйте указать абсолютный путь для WORKON_HOME и убедитесь, что пользователь, от имени которого выполняется задание, имеет разрешения для всех соответствующих каталогов и файлов.

...