タグ付けされた質問 「supervisord」

スーパーバイザーは、ユーザーがUNIXライクなオペレーティングシステム上の多くのプロセスを制御できるようにするクライアント/サーバーシステムです。

12
スーパーバイザーが新しい構成ファイルをロードしない
GunicornとSupervisorを使用してDjangoアプリを展開する際に問題があります。Gunicornにアプリを提供させることはできますが(適切なPYTHONPATHを設定し、supervisord configからの適切なコマンドを実行することにより)、スーパーバイザーに実行させることはできません。アプリが表示されません。構成ファイルに問題がないかどうかを確認する方法がわかりません。 Supervisorctlの説明は次のとおりです。 # supervisorctl start myapp_live myapp_live: ERROR (no such process) 私はUbuntu 10.04で次の設定で実行しています: ファイル/home/myapp/live/deploy/supervisord_live.ini: [program:myapp_live] command=/usr/local/bin/gunicorn_django --log-file /home/myapp/logs/gunicorn_live.log --log-level info --workers 2 -t 120 -b 127.0.0.1:10000 -p deploy/gunicorn_live.pid webapp/settings_live.py directory=/home/myapp/live environment=PYTHONPATH='/home/myapp/live/eco/lib' user=myapp autostart=true autorestart=true /etc/supervisor/supervisord.confのファイルの最後には、次のものがあります。 [include] files = /etc/supervisor/conf.d/*.conf ここに私の設定ファイルへのシンボリックリンクがあります: # ls -la /etc/supervisor/conf.d lrwxrwxrwx 1 root root 48 …

2
スーパーバイザHTTPサーバーポートの問題
いくつかのプロセスを管理するスーパーバイザーのセットアップがあります。サーバーを起動すると完全に機能しますが、サーバーを停止して再度起動しようとすると失敗し、次のエラーメッセージが表示されます。 *スーパーバイザーデーモンマネージャーの起動... エラー:別のプログラムが、HTTPサーバーの1つが使用するように構成されているポートで既にリッスンしています。スーパーバイザーを開始する前に、まずこのプログラムをシャットダウンしてください。 ヘルプが必要な場合は、/ usr / bin / supervisord -hを使用してください ...不合格! ポート80でnginxを実行し、ポート8000​​、8001、8002、8003で4つのWebサーバーを実行しています 誰が何が起こっているのか知っていますか? 再起動するとすべてが正常に動作します。



1
スーパーバイザーグループ全体を一度に制御するにはどうすればよいですか?
非同質のスーパーバイザーグループを定義しました。ただし、そのグループをグループ名で制御することはできません。 しようとすると、次のエラーが表示されます。 $ supervisorctl start groupname groupname ERROR (no such process) ただし、たとえばグループの単一の要素を制御することはできます supervisorctl start groupname:programname グループ全体を一度に制御することはできますか(グループ内のすべてのプログラムを開始/停止/再起動します)?もしそうなら、どのように?

2
スーパーバイザー:$ PATHに追加する方法
スーパーバイザープログラムの設定でデフォルトパスに追加する方法がわからないようです。 パスをリセットできます: environment=PATH="/home/site/environments/master/bin" しかし、私がしようとすると: environment=PATH="/home/site/environments/master/bin:$PATH" Supervisordが評価しないことがわかり$PATHます。 Googleはなんらかの理由でこれについて大きな助けにはなりませんでした。私がこれを必要とする最初の人だとは信じられません。 スーパーバイザーはこれをサポートする必要がありますが、それが何であるか考えていますか?

1
スーパーバイザー-CentOSでのiniファイルエラー
CentOS 6.5にスーパーバイザーをインストールしましたが、現在は修正できないような奇妙なエラーが発生しています。 ディレクトリにsupervisord.confファイルを作成し、次の/etcようにスーパバイザを呼び出します。 $ supervisord -c /etc/supervisord.conf これはかなり基本的に見えます。しかし、このエラーは表示され続けます: Error: .ini file does not include supervisord section Supervisord.confファイルは次のようになります。 [program:supervisord] command=/usr/local/bin/run_queue.sh autostart=true autorestart=true stderr_logfile=/var/log/laraqueue.err.log stdout_logfile=/var/log/laraqueue.out.log 誰がここで何が問題なのか知っていますか?

3
スーパーバイザーでTomcatを制御する
スーパーバイザー経由で制御するときにTomcatを「正常に」シャットダウンする方法はありますか? 私の理解では、Tomcatのshutdown.shスクリプトはシャットダウンポート上のtomcatと通信して正常なシャットダウンを開始します。スーパーバイザーには、信号のみを使用してシャットダウン「コマンド」を指定する方法はないようです。 誰かがTomcatでスーパーバイザーを正常に使用しましたか? また、tomcatのstartup.shスクリプトはjavaプロセスを開始するため、結果のjavaコマンドを直接スーパバイザにコピーしてきましたが、これはすべての環境設定のためstartup.shスクリプトを使用するほど良くありません。スーパーバイザーにstartup.shスクリプトを使用させながら、結果の子Javaプロセスを追跡する方法はありますか?

1
ユーザーがスーパーバイザーで再起動できるプロセスを制限しますか?
Djangoサイトを実行しているGunicornプロセスを管理するためにスーパーバイザーを使用しましたが、この質問はスーパーバイザーによって管理されているものに関係する可能性があります。以前は、サーバーを管理および使用する唯一の人物であり、スーパーバイザーはrootとして実行されsupervisorctl restart myapp、必要に応じてsudoを使用して実行していました。 サーバーは異なるサイトで作業する複数のユーザーをサポートする必要があり、各プロジェクトは他のユーザーのプロセスを再起動することなく、独自のgunicornプロセスを再起動できる必要があります。 このブログ投稿をフォローしました。 http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/ また、root以外のユーザーがSupervisorctlを使用できるようになりましたが、今では誰でも他のユーザーのプロセスを再起動できます。見た目では、スーパーバイザーにはユーザーごとのアクセス制御を行う方法がありません。 ユーザーがルートなしで自分のプロセスのみを再起動できるようにする方法についてのアイデアはありますか? 編集:私たちが考えたいくつかのことには、rootが所有するスクリプトを、suidビットを設定して、何も含まないものを記述し、所有してsupervisorctl restart myappいるユーザーのディレクトリに置くことが含まれますmyapp。インターネットは、そのようなスクリプトが誤って実行された場合、安全でないと言っているようです。また、特定のユーザーからのコマンドをリッスンし、ユーザーに許可がある場合はスーパーバイザープロセスを再起動するカスタムデーモンを作成することも検討しました。より単純なソリューションが機能する場合、このアイデアは過度に複雑に思えます。

3
結果が0で終了した場合にすべてのスーパーバイザプロセスを終了する方法
私はこのようなスーパーバイザーでドッカーコンテナーを実行します: Dockerfile CMD ["/run.sh"] run.sh #!/usr/bin/env bash exec supervisord -n supervisor-serf.conf [group:job] programs=serf,producer [program:serf] command=/start-serf-agent.sh numprocs=1 autostart=true autorestart=unexpected stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start-serf-agent.sh #!/bin/bash exec serf agent --join=serf:7946 -tag role=producer supervisor-servce.conf [program:producer] command=/start.sh numprocs=1 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start.sh #!/bin/bash exec /producer --project=${NAME} プロデューサーが停止した後、私は持っています: producer_1 | …

2
プロセスが停止した場合、プロセスを再起動するために、upstart、runit、supervisor、daemontoolsなどを選択するにはどうすればよいですか?
Nginx Webプロキシ、gunicorn Webサーバー、およびpython / flask Webアプリがあります。Gunicornプロセスはどうやら死んだようです。また、将来クラッシュする場合にgunicornプロセスを監視および再起動できるユーティリティを検討することで、これを改善したいと考えています。 私は仕事をすることができるいくつかを見つけました: 起業家 それを実行します 監督者 デーモンツール もっともっと プロセスの監視と再起動に使用されるさまざまなユーティリティを比較対照する包括的な記事はありますか?

3
スーパーバイザーは常に「終了ステータス0でプロセスを終了します。期待できません'
現在、vpsを再構築しています。gunicorn/ wsgi djangoプロセスの管理にスーパーバイザーを使用したいと思います。つまり、スーパーバイザーはプロセスを終了し続けます。 2010-07-23 14:54:40,575 INFO supervisord started with pid 31391 2010-07-23 14:54:41,582 INFO spawned: 'projectx' with pid 31395 2010-07-23 14:54:41,691 INFO exited: projectx (exit status 0; not expected) 2010-07-23 14:54:42,695 INFO spawned: 'projectx' with pid 31401 2010-07-23 14:54:42,801 INFO exited: projectx (exit status 0; not expected) 2010-07-23 14:54:44,806 INFO …

2
スクリプトを直接呼び出すのではなく、なぜスーパーバイザーで `bash -c`を使用するのですか?
supervisordサーバーのサービスを制御するために使用し始めています。私はLinuxのプロユーザーではありませんが、Linuxをうまく使いこなすことができます。 好奇心から、supervisordのほとんどのコマンドが次のように呼び出されているように見えることに気づきました。 [program:install] command=bash -c "/src/etc/install.sh" 私はbashの人を読みました、そしてそれ-cが文字列の後に渡された変数を挿入するために使用されるべきであることを知っています。 ではbash -c、スクリプトを直接呼び出すのではなく(下の例のように)、スーパーバイザー(またはその他の場所)で使用するポイントは何ですか? [program:install] command=/src/etc/install.sh ありがとう!

3
ソルトステートファイルを含むディレクトリをクリア
状態ファイルを使用して、salt-minionのディレクトリをクリアするにはどうすればよいですか?他のスーパーバイザサービスを設定する前に*.conf、すべてのファイルを削除したいのですが/etc/supervisord/conf.d/。 次のtop.sls構成は効果がありません。 /etc/supervisor/conf.d/*: file.absent file.remove 利用できないため失敗します。

1
監視およびstdout / stderr
Supervisordのプログラム構成ブロックで、redirect_stderrがtrueの場合、stderr_logfileを設定する必要がありますか? stderror_logfile=/path/to/logfile/stderr.log stdout_logfile=/path/to/logfile/stdout.log redirect_stderr=true redirect_stderrがtrueであるため、これはstderr.logが空になり、stderrとstdoutストリームの組み合わせがsdtout.logに表示されることを意味します。私の理解は正しいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.