問題タブ [supervisord]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - xmlrpc 経由で Supervisord にプログラムから安全にアクセスするにはどうすればよいですか?
Supervisord のセットアップをプログラムで管理できるようにする必要があります。さらに、システム上のどのユーザーも、supervisord の構成にアクセスできないようにする必要があります。このため、何らかの方法で通信を保護する必要があります。
私は、supervisord が XML-RPC の形式でプログラムによるアクセスを提供していることを知っています。ドキュメントを読み、いくつかの方法で作業を試みましたが、問題が発生し続けています。
紹介ページのドキュメントでは、XML-RPC インターフェイス用に HTTP サーバーを実行し、Python 標準ライブラリxmlrpclibを使用して通信することを推奨しています。ここには 2 つの問題があります。
- Supervisord.confの
inet_http_server
ディレクティブには、設定としてユーザー名、パスワード、およびポートのみが含まれます。接続を暗号化するオプションはありません。 - xmlrpclib は、ユーザー名とパスワードさえサポートしていません。構文を使用すると
username:password@host:port
、 が得られIOError: unsupported XML-RPC protocol
ます。ドキュメント ページの例でわかるように、認証は行われません。
- Supervisord.confの
UNIX ソケットは安全なので、
[unix_http_server]
xmlrpclib を使用して に接続するのは良い考えだと思いました。それでも、認証がどのように機能するかはわかりません。さらに、xmlrpclib はネットワーク HTTP/HTTPS サーバーしかサポートしていません。supervisor.rpcinterface
ドキュメントの別のページでは、モジュールについて言及しています。ただし、Pythonではそのようなものにアクセスできません。その理由についてさらに詳しい情報を収集するために、Pip を使用して Supervisord を再インストールしました。sudo pip install --upgrade supervisor
. pip 出力に、行が表示されSkipping installation of /usr/local/lib/python2.6/dist-packages/supervisor/__init__.py (namespace package)
ます。名前空間パッケージのインストールをスキップする理由がわかりません。
Supervisord とプログラムで安全に通信するにはどうすればよいですか?
supervisord - Supervisord が強制終了されたプロセスを開始しない
Ubuntu 10.04にsupervisord
インストールしましたが、Javaプロセスを継続的に実行し、何らかの理由で停止またはクラッシュしたときにプロセスを修復(リロード)するはずです。
私のhtop
場合、SIGKILL、SIGTERM、SIGHUP、SIGSEGVシグナルをそのJavaプロセス/etc/logs/supervisord.log
に送信し、ファイルを監視すると、それは言います。
で08:38
、SIGSEGV でプロセスを強制終了します。なぜコード 0 で終了し、まったくsupervisord
再起動しないのですか?
この特定のプログラムに関する私のすべてsupervisord.conf
は次のとおりです。
Supervisord を起動すると、プロセスは正常に動作しますが、修復されません。
ところで、システム全体の再起動時に自動的に起動するように、supervisord をサービスとして起動する方法はありますか?
supervisord - スーパーバイザー - Python スクリプト PYTHONPATH の問題を実行する
スーパーバイザーを使用して Python スクリプトを実行しています。
しかし、プロセスは開始できません。エラーログの内容は次のとおりです。
mymoduleを取得しているようですが、twitter.pyを単独で実行すると、すべて正常に動作し、スーパーバイザーを介して実行したときにのみこのエラーがスローされます。
~/.profile ファイルの PYTHONPATH に mymodule を次のように追加しました。
ターミナルを介して実行するとスクリプトが機能するのに、スーパーバイザーを介して実行するとスクリプトが機能しない理由はありますか? どんな助けでも大歓迎です。
php - PHPとGearmanの複数のプロセスの追加を監視
最近、PHP5-FPM、Gearman、Supervisorを使用してUbuntuNattyをセットアップしました。Gearmanワーカーを実行するようにSupervisord構成を編集しました。
lsof -i -P
スーパーバイザーを実行する前の関連情報(gearmandプロセスとphpプロセスのみを表示)は次のとおりです。
そして、これが私が私を追いかけたときに私が得るものlsof -i -P
です/etc/init.d/supervisor stop && /etc/init.d/supervisor start
。
監視対象自体のリストが表示されません。監視対象をコマンドの1つとして表示する必要がありますか?!
とにかく、私が停止して再開(または再起動)すると、監視対象は次のようになります。
監視を停止して開始するたびに、別のphpプロセスが作成され、次に別のプロセスが作成されるようです。ギアマンドを再起動したときだけ、通常の状態に戻り/etc/init.d/gearman-job-server stop && /etc/init.d/gearman-job-server start
ます。
これは私には異常に思えます。私が監督をやめると、それはやめることになっているということです。
これは監視対象の動作方法ですか?!これを防ぐ方法はありますか?!
前もって感謝します。
編集
問題の原因を突き止めました。これは、supervisord.confおよび私のinitスクリプトとの小さな競合でした。
私のsupervisord.confファイルには次の設定がありました。
しかし、私のinitスクリプトに/etc/init.d/supervisord
は次の設定がありました。
そのため、supervisord.confの設定を、initスクリプトの設定と一致するように変更しました。
stopsignal=KILL
また、 supervisord構成ファイル(supervisord.conf)のプログラム構成に追加しました。
指示してくれたミナズに感謝します。
django - セロリがジャンゴを遅くする
SQLiteを使用したdjango1.3サイトがあります。それはうまくいきます。
最近、django-kombuと一緒にdjango-celeryをインストールしました。私はsupervisordを使用して、次のコマンドでセロリのダメオンを起動しています。
python manage.py celeryd -v 2 -B -s celery -E
celerydを起動するとシステムがクロールすることを除いて、すべてが機能します。topを使用すると、共有サーバー上のCPUの5%から10%を消費する長時間実行のPythonプロセスを作成していることがわかります。
テスト中、セロリのタスクはスケジュールされておらず、実行されていません。
php - Supervisor が管理している PHP スクリプト内から Supervisor プロセス (プロセス制御システム) を停止するにはどうすればよいですか?
Supervisorを使用して PHP スクリプトを並列化しています。私のスクリプトがデータベースから特定の応答を受け取ると、コマンドを実行して、Supervisord デーモンの制御下にあるすべてのプロセスを停止しますsupervisorctl
。コマンドは次のとおりです。
問題は、このコマンドが、スーパーバイザーの制御下にある PHP スクリプト内からトリガーされた場合、何の影響もないように見えることです。なんで?
スーパーバイザー内で実行されているこのプロセス グループを開始し、コマンド ラインから直接スクリプトの別のインスタンスをトリガーすると、すべてのスーパーバイザー プロセスが停止します。
何が起こっている?デーモン化されたPHPスクリプトはexec()
シェルコマンドではありませんか?
ruby - Supervisord と Ruby 1.9.2 - スリープの原因 SIGTERM
Mac(10.7.2)でsupervisordを使用して、バックグラウンドのRubyプロセスを管理しています。
スーパーバイザー経由で ruby スクリプトを起動すると、スクリプトに が含まれているsleep()
と、CPU 使用率を下げるためにSIGTERM
、スーパーバイザーのプロセスがまだ実行中であっても、スクリプトは を受け取り、実行を停止します。
supervisord - Supervisorctl は実行中のプロセスを追跡しません
問題
スーパーバイザーに実行中のプロセスを適切に追跡させることができません。バージョンを実行してい3.0a8
ます。
これが私のsupervisord.confファイルです
そして、これが最も基本的なスーパーバイザー構成ファイルです。/etc/supervisord/conf.d/duder.conf
ただし、これはスーパーバイザーとの私の端末セッションがどのように見えるかです
何か案は?
python - スーパーバイザーの celeryd のユーザーが正しくありません
セロリ (supervisord によってデーモン化された) で実行する定期的なタスクがいくつかありますが、スーパーバイザーのプロセス用にセットアップしたユーザーのホーム ディレクトリにディレクトリを作成しようとした後、「アクセス許可が拒否されました」というエラーが発生しました。os.environ
実行中の celery タスクで dict を見た後、 USER
var が 'root' に設定されており、celery の Supervisord 設定で設定したユーザーではないことに気付きました。
これは私/usr/local/etc/supervisord.conf
のように見えるものです:
何が原因でしょうか? どんな助けでも大歓迎です!
bash - Supervisord による子プロセスの停止
私がsupervisordで直面している問題の1つは、別のプロセスを生成するコマンドがある場合、supervisordがそれを強制終了できないことです。
たとえば、正常に実行されると次のようなJavaプロセスがあります
Supervisord 構成ファイルは次のようになります。
複数の子を持つこの種のプロセスは、それらを から停止する場合、supervisord によって適切に処理されませんsupervisorctl
。したがって、supervisord からこれを実行し、supervisorctl から停止しようとすると、最上位プロセスのみが強制終了されますが、実際の Java プロセスは強制終了されません。