問題タブ [python-daemon]
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 - DaemonRunner の静的メンバーをオーバーライドする
Python 標準デーモン プロセス ライブラリの DaemonRunner をオーバーライドしようとしています (ここにあります https://pypi.python.org/pypi/python-daemon/ )
DaemonRunner は、開始、停止、および再起動のコマンド ライン引数に応答しますが、ステータスの 4 番目のオプションを追加したいと考えています。
オーバーライドしたいクラスは次のようになります。
私はこのようにそれをオーバーライドしようとしました:
これはある程度機能しますが、問題は、DaemonRunner のすべてのインスタンスが新しい動作をするようになったことです。DaemonRunner のすべてのインスタンスを変更せずにオーバーライドすることは可能ですか?
python - Python 3.3.4: python-daemon-3K ; ランナーの使い方
Python 3.3.4 を使用して Python デーモンを動作させるのに苦労しています。PyPi ie 1.5.8 の python-daemon-3K の最新バージョンを使用しています
出発点は、次のコードが見つかりました。 Python でデーモンを作成するにはどうすればよいですか? コードは 2.x Python だと思います。
これを実行しようとすると、次のエラーが発生します。
python mydaemon.py start
トレースバック (最新の呼び出しが最後): ファイル "mydaemon.py"、60 行目、daemon_runner = runner.DaemonRunner(app) ファイル "/depot/Python-3.3.4/lib/python3.3/site -packages/python_daemon_3K-1.5.8-py3.3.egg/daemon/runner.py", line 89, init app.stderr_path, 'w+', buffering=0) ValueError: バッファリングされていないテキスト I/O を持つことはできません
Python 3.3.4 で動作するように変換する方法のポインタ、または python-daemon-3K でランナーを使用する良い例
ありがとうデレク
python - init.dのサービスとしてのPythonスクリプト、デーモン化する価値はありますか?
システム内のサービスとして使用したい Python スクリプトはほとんどありません。私の最初のアプローチは python-daemon を使用することでしたが、うまくいきました。プロセスは分離され、バックグラウンドで実行されていました。次に、init.d が必要なものにラッパーを提供することを知りました。それは、daemon-start-stop です。
今、私は何をすべきかわかりません。python-daemon を赤くするか、その逆にするか、または両方を維持する価値がありますか (そのような場合、python-daemon は detach=False で起動する必要があります)。
誰か init.d スクリプトとデーモンの経験がある場合は、ぜひご連絡ください。
私が答えを探しているいくつかの質問: - これら 2 つのソリューションの長所と短所 - どちらがよりシンプルでありながらより堅牢なソリューションですか - 過去にどのような問題を見つけましたか?
明確な答えがない可能性があるため、この質問は議論への導入に少し似ているかもしれません。しかし、自分に罠を仕掛ける前に、他の人の間違いを学びたいと思っています。
python - python-daemon 2.0.5 は pip でインストールされません
pip & python 2.6 で python-daemon 2.0.5 をインストールしようとするとエラーが発生します。この問題を抱えている python-daemon 2.0.3 に言及する他の質問があることは知っています。しかし、これらの回答は、今すぐ修正する必要があることを示しています。
運が悪かったので、古いバージョンもインストールしようとしました。ただし、新しい virtualenv でやり直すと、 1.5.6 をインストールできます。ただし、この virtualenv では、2.0.5 と 1.5.6 で同じエラーが発生します。
python - ssh 接続を介して python-daemon を起動するには?
Python ライブラリ paramiko を使用してリモート コンピューターにログインし、python-daemon ライブラリを使用してデーモン プロセスを開始します。このライブラリは、プログラムの終了後も何らかのジョブ キューとして機能しています。これはこれまでの私のコードです:
(この例では、デーモンはファイルを開き、いくつかの乱数をそれに出力します)
'
残念ながら、これはうまくいかないようです。スクリプトからデーモン化コンテキストを削除すると、機能するように見えますが、サーバーが終了するまで待つ必要があります。また、出力をリダイレクトしようとしましたが/dev/null
、これは機能しませんでした。提案に感謝します。
openstack - os-svc-daemon が upstart に新しいサービスを追加していません
some-service という名前の新しいサービスを作成しました。シェル スクリプトは /etc/init.d/some-service にあります。some-service のコピーである /usr/local/bin/some-service に同じシェル スクリプト ファイルがあります。
以下のコマンドを実行して、デーモン サービスを作成しました。
これにより、 /etc/init/some-service.conf が作成されました
変更をリロードするには、以下のコマンドを実行しました
でサービスを開始しようとしましたが、実行されません。
ここで何が間違っていますか?また、Pythonのbinファイルではなく、シェルスクリプトを使用して起動しても安全ですか?
python - Python: デーモン スレッドを使用してしばらくしてからマルチスレッド プログラムを終了する
しばらく実行した後に終了するプログラムを実装したいt
のですが、t
を使用してコマンドラインから読み取りますArgumentParser
。現在、私は次のコードを持っています(詳細を省略):
プログラムは期待どおりに動作します (3 秒間実行すると終了します)。しかし、前に述べたように、実行時間 (上記のコード スニペットの 3.0) は、ハード コードするのではなく、コマンド ラインから入力する必要があります (例: args.arg3 = 3.0)。どうやら私はtime.sleep(args.arg3)
直接置くことはできません。私の問題を解決できるアプローチがあるかどうか疑問に思っていましたか? デーモンスレッドを使わない回答も大歓迎です!ありがとう。
PS。引数解析コードを次のrun
ように関数の外に置くと:
プログラムはargs.arg3
数秒後に終了せず、その理由について混乱しています。また、これらすべての背後にある魔法を説明できる人がいれば、非常に感謝しています...どうもありがとう!
python - Python デーモンが時々スポーンしない
DaemonRunner API を使用して生成する Python のデーモンがあります (PID ファイルとロック ファイルが作成されます)。デーモンを停止すると、PID ファイルとロック ファイルが削除されます。
デーモンが起動しない場合を除いて、起動/停止は正常に機能します。バックアップするには、PID ファイルを含むフォルダー全体を削除する必要があります。これをデバッグするにはどうすればよいですか? また、HOST.MainThread-PID という名前の自動生成ファイルもあります。これにはどのような意味がありますか?
これがデーモンを開始/停止するための私のクラスです
strace は、成功したユースケースと失敗したユースケースの両方で似ています。