web-dev-qa-db-ja.com

スーパーバイザーでのディレクトリ設定

Celeryを開始/停止できるように監視デーモンを構成していました。

うまく行かなかった。何度かデバッグした後、問題は、作業ディレクトリが、プログラムセクションのsupervisord.confのディレクトリオプションで指定されているディレクトリに変更されないことであることに気付きました。

うまくいけば、セロリにworkdirがありますが、私は興味があります-directoryオプションの目的は何ですか?

スーパーバイザを介してスクリプトを実行し、pwdを出力すると、/が出力されます。

9
Glueon

私は同じ問題を抱えており、directorycommandオプションの順序を逆にすることで解決できました:

例えばワーキング:

[program:cat]
directory=/var/log
command=cat logfile

機能していない:

[program:cat]
command=cat logfile
directory=/var/log
14
acidjunk

Laravel(PHP Framework))と同じです。スーパーバイザーを使用してキュー内のジョブを実行しており、.envファイルが見つかりませんでした。これが機能する設定です。

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
directory=/var/www/YOUR_LARAVEL_APP
command=php artisan queue:work database --sleep=3 --tries=3
autostart=true
autorestart=true
user=YOUR_USER
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/YOUR_LARAVEL_APP/storage/logs/worker.log
stderr_logfile=/var/www/YOUR_LARAVEL_APP/storage/logs/worker_error.log
0
Cristian Deluxe

これは、正しいENVを備えたnodejsアプリをスーパーバイザーと連携させる方法の例です

[program:fake-smtp]
directory=/home/web/fake-smtp
command=sh -c 'NODE_ENV=production node src/index.js'
autostart=true
autorestart=true
user=web
redirect_stderr=true
stdout_logfile=/home/web/logs/smtp.log
stderr_logfile=/home/web/logs/smtp.err.log

これが役に立てば幸いです!このアプリには、正しいディレクトリも必要です。

0
Tanel Tammik