問題タブ [twistd]

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.

0 投票する
1 に答える
505 参照

python - ツイストプラグインとツイストサービスの違いは何ですか?

どうやらあなたは2つの異なる方法でツイストのツイストで実行されるサービスを作成することができます。一方では、ツイストアプリケーションインフラストラクチャを使用してサービスを作成でき、もう一方では、ツイストプラグインシステムを使用してサービスを作成できます。コマンドラインでアプリを起動する方法と実際のサービスを作成する方法にいくつかの違いがあることに加えて、同じことを実現する2つの方法があるようです。

0 投票する
1 に答える
517 参照

python - ツイストプラグインロギング

ツイストプラグインを作成しています。.tacファイル内のツイストアプリのログを制御する方法についてのドキュメントがここにあります。ただし、プラグインのロギングを制御するための同様のドキュメントはありません。

プラグインはApplication()オブジェクトを作成しないので、発生するロギングをどのように制御/カスタマイズできますか?

(ここのメーリングリストでほぼ同じ質問がされましたが、そこには答えが得られていないようです)

0 投票する
1 に答える
2638 参照

twisted - Pypy で twistd を実行する

Pypy は、CPython よりも優れたベンチマークを示しているため、試しています。また、私のコードでは主に Twisted ライブラリを使用しています。Twisted リアクターを使用するベンチマーク スクリプトを実行できるようになったので、セットアップは適切であると思います。しかし、Pypy を使用して Twisted デーモン化プログラム (twistd) を実行する方法がわかりません。

0 投票する
1 に答える
563 参照

twisted - twistd でデーモン化された非 Twisted ベースの Python スクリプトを実行する

サーバー (Twisted を使用) とクライアント (Twisted なし) で構成される Python プログラムを作成しています。

サーバー部分は Twisted と Twisted のアプリケーション フレームワークを使用して実装され、Twistd で起動されてデーモン化されます。

別のサーバーで実行されるクライアントは、Twisted のものを一切含まない (そしてアプリケーション フレームワーク固有のものを含まない) 単純な Python スクリプトです。また、デーモンとして実行する必要があります。参考までに、これはソースです:

Twistd でもクライアントをデーモン化できるのでしょうか? したがって、クライアントから Twisted-Application を作成する必要がありました。しかし、私が見たすべての例は、クライアントが使用していない Twisted インターネットサーバーのもの (私の場合は internet.UDPServer...) を実装する Twisted アプリケーションに関するものです。

Twistd を使用してクライアントをデーモンとして起動することは可能ですか? また、どのような変更を加える必要がありますか? Twisted をフルに活用するには、クライアントを書き直す必要がありますか? はいの場合、Twisted ベースのネットワーク クライアントを作成する方法と同様の例はありますか?

または、クライアントに別のデーモン化ライブラリを使用する必要がありますか? そのための優れたライブラリがありますが、一貫性を保ち、クライアントとサーバーに同じデーモン化メカニズムを使用しようとしています。

0 投票する
1 に答える
1923 参照

python - Twisted:Twisted-frameworkクラスのロギングを無効にします

ツイストベースのクライアントは、UDPパケットをループで送信します。したがって、私はクラスDatagramProtocolを使用しています。これがソースです:

このクライアントをtwistedで実行すると、Twistedクラス、つまりDatagramProtocolクラスからログメッセージが永続的に取得されます。

これらのログメッセージは自分の「自分の」ログを汚染しているので、これらのログメッセージを無効にできるかどうか疑問に思います。ご覧のとおり、を呼び出すことでログの量をすでに減らしましたがprotocol.noisy = False、他のログメッセージが表示されます。また、コマンドg = protocol.ClientFactory().noisy = Falseは役に立ちません。

すべてのモジュールについて、一般的な方法で、すべてのツイスト内部クラスのロギングを無効にすることは可能ですか?たぶん、ツイストロギング構成を使用することによって?

0 投票する
1 に答える
710 参照

python - ツイストで起動したツイストサーバーが正常に起動したか確認してください

ツイスト(およびTACファイル)を介して起動されたツイストベースのサーバーが正常に起動されたかどうかを確認するための信頼できる方法が必要です。一部のネットワークオプションが正しく設定されていないため、失敗する可能性があります。ツイストログにアクセスできないため(/ dev / nullに記録されるため、ツイストされたログクラッターが生成される必要がないため)、サーバーがラップするlaunch-script内で正常に起動されたかどうかを確認する必要があります。ツイストコール。

launch-scriptは、次のようなBashスクリプトです。

ネットで見つけたのは、psなどを使ったハックだけです。しかし、私はそのようなアプローチは信頼できないと思うので、好きではありません。

では、Twistedの内部にアクセスして、現在実行中のすべてのTwistedアプリケーションを取得する方法があるかどうかを考えていますか?そうすれば、現在実行中のアプリに、Twistedアプリケーションの名前(TACファイルで名前を付けたとおり)を照会して開始できます。

ツイスト実行可能ファイルを使用せずに、この質問への回答が提供するように、ツイストコンテンツを含むPythonベースの起動スクリプトを実装することも考えていますが、それがステータスの取得に役立つかどうかはわかりません実行するサーバー。

だから私の質問はただです:twisted-loggingが無効になっているときに、twistedで起動されたTwisted Serverが正常に起動されたかどうかを判断するための信頼できる醜い方法はありますか?

0 投票する
2 に答える
516 参照

python - ツイストを使用すると、ツイストapp.pyの「アプリケーション」エラーでスタックダンプが発生しますが、Pythonで動作しますか?

ツイストを使用しようとしていますが、ツイストパッケージで提供されているサンプルコードの一部を実行しようとすると、「python」ではなく「twistd」を使用すると常にクラッシュするようです。

たとえば、twistedで指定されたサンプルコードを使用して、コマンドを実行した場合:twisted -ny echoserv.py

Twistedバージョン11.0.0を使用していましたが、12.0.0を試しましたが、同じ問題が発生します。

私が使用しているPythonのバージョンは2.7.2です

何をすべきかについてのアイデアは役に立ちます。私はこの問題に数日間対処しようとしています。ありがとう!

0 投票する
1 に答える
171 参照

python - ツイストソケットの所有権

のソケットをリッスンするデーモンがあります/var/run。私はinitスクリプト(明らかにrootとして)を使用してデーモンを起動し、twistd --uidand--gidオプションを使用して特権のないユーザーに特権をドロップしています。ただし、ソケットはまだ。によって所有されていroot:rootます。

同じ非特権ユーザーとして実行される2番目のデーモンは、ソケットにアクセスできる必要があります。ソケットの所有権をdaemon:daemoninitスクリプトで変更しましたが、これは非常に洗練されたソリューションとは言えません。

daemon:daemonファイル内でソケットを所有する方法はありtacますか?

0 投票する
1 に答える
1268 参照

python - pyinstaller を使用して twistd プラグインをパッケージ化する

Twisted Documentation で指定されているように、twistd ランナー用のプラグインを使用して素敵な python Twisted アプリを作成しました: http://twistedmatrix.com/documents/current/core/howto/tap.html。これを PyInstaller でパッケージ化する際に問題があります: フリーズしたアプリケーションの実行中に twistd プラグインが見つかりません。

プロジェクトを出荷するために、twistd ランナー モジュールを使用して独自のトップレベルの起動スクリプトを作成しました。

次に、PyInstaller を使用して、これを単一のディレクトリ デプロイとしてフリーズします。上記の凍結されたスクリプトを実行すると、twistd プラグインが見つからないため失敗します (簡潔にするために編集されています)。

通常、Twistd は Python システム パスを調べて、twisted/plugins/myapp_plugin.py で私のプラグインを見つけます。起動スクリプトで twistd プラグインのリストを出力すると、PyInstaller から生成された実行可能ファイルでリストが空になります。

私はややデフォルトの PyInstaller 仕様ファイルを使用しており、非表示のインポートやインポート フックは指定されていません。

ロギング、pid ファイルなどを使用した twistd の機能が気に入っているので、プラグインの問題を回避するために twistd ランナーを完全に放棄する必要がないようにしたいと考えています。私の twistd プラグインが凍結された実行可能ファイルで確実に見つかるようにする方法はありますか?

0 投票する
1 に答える
666 参照

python - twistd で autobahn アプリケーションを実行する

autobahn lib を使用して Twisted で websocket サーバーを開発しました。今、twistd を使用してデーモンとして実行したいと考えています。単純な TCP サーバーの場合、次のようにします。

その例では、reactor.listenTCP 関数の代わりに TCPServer クラスを使用しています。

autobahn api リファレンスでは、listenWS 関数 (TCP サーバーの listenTCP など) のみが見つかり、WSServer クラスについては何も見つかりませんでした。

私の質問は、どうすれば私のアプリを twistd で動作させることができるでしょうか? ねじれた Service クラスを拡張する独自のサービス WSServer クラスを実装する必要があるのでしょうか。