問題タブ [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.
python - Python twistd アプリケーション用の systemd ユニット ファイルとスペックファイルの書き込み
Python twistd アプリケーション用の systemd ユニット ファイルを作成し、その rpm を作成するタスクを与えました。このアプリケーションはオープン ソースであり、ここで見つけることができます。
ユニットファイルを次のように記述しました。
rpmbuild specfile を次のように記述しました。
アプリケーションが setuptools を使用しないのは少し奇妙です。
また、init.d スクリプトと、それを使用するcron ジョブもあります。リンクを使用してそれらを見つけることができます。
削除しても安全ですか? はいの場合、どのように?
私はそれをうまくやっていますか?どうすれば改善できますか?任意のポインタと提案をいただければ幸いです。
python - Python - Twisted クライアント - dataRecived メソッドのデータの最大サイズ
私は最近、TCP クライアント ソケットを作成するために twisted を使用して学習しています。
dataRecivedクラスのメソッドを取得しProtocol、すべてのデータをまとめて返します。これは、すべてのデータを相互に ConCat することを意味し、最終的にサーバーから長いバイト データを返します。
コード:
だから今私の質問は:
dataRecivedメソッドにデータの最大サイズはありますか? それともサイズは無制限ですか?最大サイズがある場合、それは何ですか? そして、どうすればそれをオーバーライドできますか?
注: Ubuntu 14.04、Python v3.4、および Twisted v15.3.0 を使用しています。
python - ねじれたスクリプトの問題
StackOverflow の他の場所で提供されている例に基づいて、アプリケーションのデプロイ中にデプロイされる Twistedbinファイルを作成しました(場所は覚えていません)。プロジェクトはhereにあります。/usr/binAxiom
私の問題は、python setup.py installプロセス中に、インストールされた bin ファイルが Axiom パッケージのものとは異なることです。
/usr/bin/axiomatic
/usr/bin/myapp
後者は、bash シェルから呼び出すと機能しません。myapp start
次のエラーが表示されます。unknow command myapp
python setup.py develop代わりに使用すると、python setup.py installすべてがスムーズに機能します。
ポート 1234 で tcp サービスを開始する小さなテスト アプリケーションをセットアップしました。
- コマンド
twistd fingerが機能し、サービスが開始されます - コマンド
fingerize start(間違ったものを呼び出さないように、意図的に別の名前)が機能しません
コードは次のとおりです。
ビン化/フィンガー化
ツイスト/plugins/finger_plugin.py
指/plugins.py
指/tap.py
setup.py
そして、私が呼び出すと、次のようfingerize startになります: /code/test/bin/fingerize: Unknown command: finger(test is a virtualenv)
python - ツイスト プラグイン エラー
A は、TCP プロトコルを開始し、STDIN に入力した内容をエコー出力する、完全に単純なねじれたアプリケーションを作成しました。
私は今twistd、この方法でアプリケーションを実行できるプラグインを作成しようとしています:echo startまたはtwistd -n echo
twistd -n echoすべてを実行すると、echo startコマンドを使用するとエラーが発生します。/home/vagrant/.env/bld/bin/echo: Unknown command: echo
これが私のコードです:
エコー/plugins.py
エコー/プロトコル.py
エコー/tap.py
ツイスト/プラグイン/echo_plugin.py
setup.py
ここで私のvirtualenvセットアップ:
コマンドの前に_ep_と_bld_を付けました。なぜなら、twistdを介してプログラムを呼び出したとき、または entry_point を直接呼び出したときにどちらが呼び出されたのかわからなかったからです。
実行すると、次のよう_ep_echo startになります。
に置き換え_bld_echoても同様_ep_echoです。
echo出力を見ると、奇妙なことが 1 つあります。それは、twistd にサブコマンドが登録されていないことです。
実行すると、次のようtwistd --helpになります。
echoそして、そこにコマンドが登録されていることがわかります。
これは私を夢中にさせています、ここで何が問題なのかについてのアイデアはありますか??
後者のコマンドは機能しますが、本番環境では実行したくありませんpython setup.py install。python setup.py develop
編集
なぜaxiomatic start私ではなく機能したのかを検索した後echo start、インストールから不要なコードをすべて削除することで理由を見つけました。
AxiomとEchoの主な違いは、次の行ですsetup.py。
packages=find_packages() + ['twisted.plugins']
+ ['twisted.plugins']への追加はありませんでしたが、packages line動作するようになりましたが、まだこのエラーが発生しています:
プラグインは機能しますが、元のインストール方法が機能しなかった理由を知りたいです...
python-2.7 - twistd ロガーの代わりの Python 標準ロガー
Python2.7 標準ライブラリ ロガーを使用する単純な Twisted アプリケーションをデーモン化しようとしています。
セットアップは次のとおりです。
Python アプリケーション ファイル (run.py) :
Twistd アプリケーション ファイル (daemon.tac) :
ログ オブザーバー ファイル (daemonlog.py) :
次を使用してアプリケーションを起動します。
すべてが正常に機能し、ログ メッセージが正しくファイルされ、表示されます (ロガーの構成に従って)。
でデーモン化しようとしています:
デーモンは正常に起動し、twistd.pid ファイルが (正しい pid 番号で) 作成され、ps -ef コマンドで実行されているデーモンが表示されますが、ログ ファイルは表示されません (twistd.log またはログ ファイルのいずれも表示されません)。 twistd なしで正常に起動されたときにアプリケーションによって作成されます)。
最後に、Python の標準ライブラリ ロガーと一種の "バイパス" twistd ロガーのみを使用したいと思います。
私はおそらく何かを見逃しているか、誤解しているので、助けていただければ幸いです。
python - Twistd - オプションで service.Application を使用して引数の解析を許可する
サーバーをアプリケーションとして実行したいと考えています。そのために、 (オブジェクトMyServer(name, port, host, testMode=False)から継承する) クラスがあります。DatagramProtocol
別のファイルで、サーバーを作成して起動するためのコマンドをいくつか作成しました。多かれ少なかれ、次のようになります。
values name, port、およびhostデータベースから読み取ります。サーバーを as で起動する'twistd -y my_server_run.py'と、すべてが完璧に動作します。
ただし、サーバーをテスト モードと標準モードの 2 つのモードで起動できるようにしたいと考えています。したがって、コマンドラインから読み取った引数をオブジェクトにパラメーターとして渡したいと思います。それらをsys.argvとして解析できないという情報を見つけましたが、実装する必要があるusage.Optionsため、次のようにしました。
次に、サーバーを次のように実行します。
ただし、エラーが発生します:
私は自分が間違っていることを見つけることができません。どんな提案も非常に役に立ちます。
python - Twisted プラグインは、ポートが使用される前に失敗する必要があります
ポートをリッスンし、非常に単純なことを行うtwistdプラグインがあります。問題は、私がそれを開始したときに、投稿が利用できない場合、プロセスが実行されているだけで何もしていないことです。この場合、大規模なシステムが問題を認識して対処できるように、プロセスをすぐに終了する必要があります。
次のようなコードがあります。
これにより、次の結果が得られます。
そして何もせずに走り続ける……。
service._raiseSynchronously = Truereturn のすぐ上に行を追加すると動作しますが、文書化されていないようで、汚いと感じます。
これを行う承認された方法はありますか?