問題タブ [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 - Python のどのバージョン (2.4、2.5、2.6、3.0) を製品開発の取り組みのために標準化していますか (およびその理由)?
私たちのグループでは、主に検索エンジンのアーキテクチャとコンテンツの統合作業を行っており、そのコード ベースのほとんどは Python で作成されています。すべてのビルド ツールと Python モジュールの依存関係はソース管理にあるため、それらをチェックアウトして、os/プラットフォームに関係なく使用するために環境をロードできます。これは、 virtualenvが使用するアプローチと似ています。
私たちが使用する商用製品の 1 つが Python 2.3 に依存しているため、何年もの間、私たちは Python 2.3 と互換性のあるコード ベースを維持してきました。2004 年に 2.3 が登場して以来、新しいツールやライブラリには新しいバージョンの Python が必要になるため、長年にわたり、これはますます多くの問題を引き起こしてきました。
最近、ビルド環境を商用製品の環境への依存関係から切り離し、任意のバージョンの Python (または Java) を使用できるようにしました。以前のバージョンと下位互換性がある Python の最新バージョンとして Python 2.6 を標準化してから約 1 か月ほど経ちました。
Python 3.0 は (今のところ) オプションではありません。ビルド ツールと統合ツールを再び正しく動作させるには、コード ベースの多くを移行する必要があるからです。
私たちは Python 2.6 の新機能の多く、特に改善されたモジュールやクラス デコレータなどを気に入っていますが、依存している多くのモジュールが原因で Python 2.6 インタープリターがさまざまな減価償却警告を発します。EC2 クラウド クラスター ノードを管理するために私たちが関心を持っているもう 1 つのツールであるSupervisorは、Python 2.6 では正しく動作しません。
現在、本番環境ツールの開発に Python 2.6 を使用するのではなく、とりあえず Python 2.5 に標準化する必要があるのではないかと考えています。私たちが必要とするツールのほとんどは、Python 2.5 で正しく動作するようです。Python 2.6 の機能やモジュールに多くの依存関係が生じる前に、これを整理しようとしています。
どうもありがとう!
-マイケル
python - 監視対象RPC-要求に応じてUNKNOWN_METHOD
(ほとんどデフォルトで)supervisord.confを構成し、supervisordを開始しました。起動されたタスクとxmlrpcインターフェースは起動していますが、
xmlrpclib.Fault: <Fault 1: 'UNKNOWN_METHOD'>
supervisorctl自体を起動した場合でも、すべてのxmlrpc要求を出します。
ログにも同じメッセージがあります。
python - ビルドアウト内で監視対象のビルドを作成するのはなぜですか?
スーパーバイザーをビルドアウトに組み込むビルドアウトレシピを見てきました。内部のデーモンを制御すると思います。ただし、起動時に上記のスーパーバイザインスタンスを実行するには、(たとえば)/etc/init.dに何かが必要であるように思われます。
では、なぜビルドアウト内にスーパーバイザーをビルドするのですか?システム全体にインストールして、内部に関係するデーモンの構成ファイルを作成してみませんか?
signals - 監視対象を使用した管理対象プロセスへのシグナルの受け渡し
Linuxターゲット用にCで記述しているFastCGIアプリケーションを生成および管理するためにsupervisordを使用しています。SIGINTを受信したときにアプリケーションを正常に終了するシグナルハンドラーがあります。ターミナルウィンドウでアプリを実行し、Ctrl-Cを発行して終了することで、シグナルハンドラーが希望どおりに機能することを確認しました。
(supervisorctlを介して)supervisordに「shutdown」コマンドを発行すると、supervisordはSIGKILLを呼び出さずにアプリを強制的に終了できないようです。
私のsupervisord.confファイルには次のものがあります
私は、shutdownコマンドの呼び出し時にsupervisordが「stopsignal」を発行することを前提としているため、INFOステートメントは、私のアプリがsupervisordによって発行されたSIGINTに応答していないことを示しています。
監視対象とアプリの間を通過する信号をデバッグするにはどうすればよいですか?
python - 監視対象をリロードすると、その下のプロセスが停止しますか?
いつsupervisordにreloadコマンドを使用したかを把握しようとしています。その下で現在実行されている処理を停止しますか?以下の手順を使用しました。
プロセスIDは変更されていないことがわかりました。それで、リロードがスーパーバイザーの制御下で処理を停止しないことを証明しますか?
c - プログラムのメモリおよび CPU 使用率のプロファイリングに、supervisord を使用できます
特定の API を一定期間繰り返し実行するとメモリ リークが発生するかどうかを確認する必要があります。
API を 1 回テストするために使用する単純な C プログラムがあります。これをコンパイルして、supervisord を使用して exe を繰り返し実行する予定です。
Supervisord は、プログラムの CPU とメモリの使用状況もプロファイリングできますか?
いくつかのブログを広範囲に検索しましたが、supervisord のプロファイリング機能に関する情報はあまり見つかりませんでした。
スーパーバイザーの詳細については、http://supervisord.orgを参照してください。
python - Supervisor 内の複数のコマンド - Python/Linux
私は素晴らしいユーティリティを使用していますsupervisord
次のように構成ファイルを編集して、いくつかのアプリを喜んで実行しています。
ここでの問題は、一部のアプリでは、起動の準備をするために、起動する前にいくつかのコマンドが必要になることです。
例: 条件の確認、フォルダのクリーニングなど...
何か案は?
configuration - Supervisord: 構成を動的に生成しますか?
Supervisordで使用される構成を動的に生成することは可能ですか?
supervisord
とにかく中央の場所ですべてのサービスを定義する必要があるプロジェクトに取り組んでいるので、何らかの方法でその構成データも使用するように騙すことができれば非常に便利です.
django - Django、uWSGI、nginx:「理由もなく」プロセスが停止する
uWSGI と nginx を使用して、2 つの並列 Django アプリを実行しています。そのうちの 1 つで、負荷がやや大きいもの (どちらも非常に小さい) は、24 時間ごとに約 1 回、次のメッセージで停止し続けます。
[pid: 16358|app: 0|req: 1000/1000] 127.0.0.1 () {46 vars in 847 bytes} [Thu Mar 24 16:38:31 2011] GET /aktivitet/409/picknick/ => generated 18404 bytes in 117 msecs (HTTP/1.0 200) 3 headers in 156 bytes (1 switches on core 0)
...The work of process 16358 is done. Seeya!
次の構成で Supervisor を使用してプロセスを起動しています。
[program:uttrakad]
command=/home/myuser/webapps/uwsgi_test/bin/uwsgi
-s /home/myuser/webapps/uwsgi_test/app1.sock
-C /home/myuser/webapps/django/app1.wsgi
--processes 1
--harakiri 120
--max-requests 1000
autostart=true
autorestart=true
stdout_logfile=/home/myuser/logs/user/uwsgi_app1.log
redirect_stderr=true
stopsignal=QUIT
.wsgi ファイルは単純です。
import os
import sys
sys.path =['/home/openworks/webapps/django/lib/python2.6/','/home/openworks/webapps/django/','/home/openworks/webapps/django/app1/'] + sys.path
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'app1.prod_settings'
application = WSGIHandler()
nginx は 2 つのワーカー プロセス、2048 個の worker_connections でセットアップされ、次のようになります。
location / {
uwsgi_pass unix:///home/openworks/webapps/uwsgi_test/app1.sock;
include uwsgi_params;
}
私が言ったように、まったく同じ方法で構成され、中断することなく実行されているアプリがもう 1 つありますが、トラフィックはほとんどありません。
手がかりはありますか?「...The work of process 16358 is done. Seeya」メッセージが表示されるのはなぜですか?
ありがとう
django - Django + nginx + gunicorn で 502 エラーが発生します。非常に少ないログ情報
サーバーをこのように構成しました(これはubuntu 10.10の新規インストールです)
nginx + gunicorn + django + Supervisord で実行
サイトにアクセスしようとすると、502 エラーが発生します。これはエラーログに表示されます:
ここに私のnginx.confがあります http://pastebin.com/t0V2yFxr
ここに私のsupervisord.confがあります http://pastebin.com/pqVqRLSk
と私の gunicorn.conf
Sudo Supervisordctl status を実行すると
何も返しません。したがって、これは適切に実行されていないと思われます。ただし、エラーを示す Supervisord.log ファイル (/var/log/ または /code/[]/logs/ 内) または gunicorn.log はありません。
したがって、これをまったくデバッグできません。このターキンの世話をする方法について何か提案はありますか?