1

このスクリプトを開始するために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インタープリターを使用してソーシングする代わりに、正常に機能します:)

これについて前に考えるべきだった!


これが何であるかについてのアイデアはありますか?

4

2 に答える 2

2

私は新進気鋭の専門家ではありませんが、問題はあなたがそれらのコマンドをsudoしようとしていることだと思います。upstartがストックの「sudo」を使用している場合は、シェル関数をコマンドとして実行しようとしていますが、これは実行できません。

これのsudo部分を削除して、機能するかどうかを確認してください。

pre-start script
    export WORKON_HOME=~/.envs
    source /usr/local/bin/virtualenvwrapper.sh
    workon env1
end script
于 2011-02-24T05:17:20.737 に答える
1

~これは、Upstartで実行したときに解決されるものである可能性があります。の絶対パスを指定してWORKON_HOME、ジョブを実行するユーザーが関連するすべてのディレクトリとファイルへのアクセス許可を持っていることを確認してください。

于 2010-12-29T16:04:39.893 に答える