問題タブ [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.

0 投票する
0 に答える
591 参照

python - django-gev​​entサーバーをデーモン化したい

私のプロジェクトでは、モンキーパッチを使用してdjango-developmentサーバーをgeventに置き換え、完全に機能していたので、manage.pyファイルは次のようになります-

ですから、私が正常に実行しているとき、これは私にとってはうまく機能しています。そして、これをプライベートクラウドでホストしようとしました。そのため、3つのインスタンスを1つopenid provider、もう1つをとして使用し、もう1つはとして使用しましたopenid consumermongodbまた、期待どおりに機能していましたが、いくつかのcross domain問題に直面していたため、proxy現在はそれを解決します。

問題-

1-クラウドインスタンスを使用

次に、()を使用してスクリプトをデーモン化しようとしました。python manage.py &これにより、インスタンスへのssh接続を閉じることができます。デーモン化した後、最初のインスタンスを使用できましたが、ログインまたはログアウトしようとすると、が取得されI/O errorます。

2-開発用PC

デーモン化した後、i tried to access the url, it wasn't connecting「ps aux | grep manage.py」を使用してプロセスをチェックしたとき、スクリプトはそこで実行されていました。

このスクリプトをデーモン化するときに何かが足りないと思います。ライブラリを使用しpython daemonましたが、それも機能しませんでした。

0 投票する
5 に答える
83945 参照

python - Pythonデーモンとsystemdサービス

デーモンとして機能する単純なPythonスクリプトがあります。起動時にこのスクリプトを開始できるようにsystemdスクリプトを作成しようとしています。

現在のsystemdスクリプト:

node.py:

runwhile Trueループが含まれています。

このサービスをで実行しようとしていますsystemctl start zebra-node.service。残念ながら、サービスはシーケンスの記述を終了しませんでした-Ctrl+Cを押す必要があります。スクリプトは実行されていますが、ステータスはアクティブ化されており、しばらくすると非アクティブ化に変わります。現在、私はpython-daemonを使用しています(ただし、それなしで試す前は、症状は似ていました)。

スクリプトにいくつかの追加機能を実装する必要がありますか、それともsystemdファイルが正しくありませんか?

0 投票する
7 に答える
42753 参照

python - python-daemon でデーモンを設定するにはどうすればよいですか?

私はデーモンが初めてなので、これが初心者の質問である場合は申し訳ありません。

他のいくつかの回答 (たとえば、この質問)では、 PEP 3143標準を完全に実装しているため、 python-daemonパッケージを使用することをお勧めします。

残念ながら、python-daemon はドキュメンテーションが少し不足しています(または、知識/経験が少し不足している可能性が高いです... ;))、おそらく本当に基本的なものが欠けていると思います。これが私がやっていることです:

私は次のものを持っています:

質問: python-daemon を使用してデーモンをセットアップするにはどうすればよいですか? また、デーモンを開始および停止するにはどうすればよいですか?


補足:

私は基本的に、.open()ここでメソッドをどのように使用するか/使用する必要があるかについて、大雑把な推測をしています-ドキュメントはこの点について明確ではありませんでした。含めても含めなくても同じことが起こるようです。

それで、今私は何をしますか?このファイルを実行しようとすると、たとえば次のようになります。

実行されているように見えますdo_something_1()が、2番目ではありません。また、ターミナル ウィンドウにプログラムが接続されたままになっているように見えます。IE、stdout はリダイレクトされず、ターミナル ウィンドウを閉じるとプロセスが強制終了されます。だから、私はここで何か間違ったことをしていると確信しています...私は別のことをすべきですか?

最後に、デーモンを実行した後、デーモンを停止/再起動するにはどうすればよいですか (たとえば、基になるコードを変更した場合)。

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

python - Pythonスクリプトをデーモンとして起動した後、シェルプロンプトメッセージが表示されず、カーソルが点滅するだけですか?

  • python-daemon-1.5.2-1.el6.noarch

以下は、開発者から受け取ったスクリプトです。

ご覧のとおり、彼はthreadingモジュールを使用して、デーモンとして実行できるようにしています。

このブログ投稿に従って、デーモンライブラリを使用するように切り替えます。

これが私の最初の試みです:

動作しますが、起動後にシェルプロンプトを表示するにはCtrl-を押す必要があります:C

/etc/init.d/sendmailworker start

どうすればこの問題を解決できますか?


アンパサンドを追加しても役に立ちません:


@Celada が指摘したように、実際には、シェル プロンプトは既にありましたが、[root@hostname ~]#通常どおり表示されず、カーソルが点滅するだけです。簡単に押すEnterと、シェルプロンプトが再表示されます。したがって、問題は次のとおりです。started with pid xxxxx最初に、と同じ行に来てStarting server、シェルプロンプトを表示する方法は?


stop関数は正常に動作しています:

start関数に対して同様のことを行うにはどうすればよいですか? このようなもの:

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

python - python-daemon のインストール失敗

root 以外のユーザーとして Python3.3 をインストールし、python virtualenv の pip を使用してビーバーをインストールしました。python モジュールは python-daemon に依存しています。ただし、python-daemon をインストールできないため、インストールは失敗します。

python-daemon をインストールする前に何か他のものをインストールする必要がありますか? それとも Python3.3 自体の問題でしょうか?

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

python - 停止時にアクションを実行するようにPythonデーモンを取得する方法

ここで見つけたコードを使用して単純なデーモンを実装しているので、停止する直前にデーモンにアクションを実行させる方法があるかどうか疑問に思っています。私のスクリプトでは、外部デバイスへのシリアル接続を使用しているので、デーモンをシャットダウンする前に、デバイスをクリーンに閉じたいと考えています。

App()クラスのinitループ中に、すべての準備と準備セットアップを行っています。次に、run関数は、シリアル接続の開始、最初のいくつかの値の破棄、およびメインループの開始(シリアル接続から値を取得し、それらを外部サーバーに保存するだけ)を処理します。

ここで、シリアル接続を閉じたり、ログファイルに送信されたデータの概要を取得したりするなど、終了直前のアクションを追加します。

それを行う簡単な方法はありますか?(またはそれにとって難しいものでさえ)。

記録のために、私はデーモンを作成するこの方法を使用することも考えました。これは、私がやろうとしていることを行うためのより簡単な方法である可能性があります。

今のところ私のコードは次のようになります。

助けてくれてありがとう!

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

linux - 安全でないプログラムの実行を拒否するデーモン

システムの起動後にサービスを開始したいのですが、/etc/rc.localのスクリプトは次のとおりです。

/var/log/pyftpd.log のエラー出力は次のようになります。

誰でも助けることができますか?ありがとう !

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

python - DaemonRunner: デーモンがすでに実行されているかどうかの検出

DaemonRunner を使用して、pid ファイルでデーモン プロセスを作成するスクリプトがあります。問題は、誰かが現在実行中のプロセスを停止せずに開始しようとすると、黙って失敗することです。既存のプロセスを検出し、最初にそれを停止するようにユーザーに警告する最良の方法は何ですか? pidfileをチェックするのと同じくらい簡単ですか?

私のコードは次の例のようになります:

私の実際のコードを確認するには、 https ://github.com/jgillick/LendingClubAutoInvestor のInvestor.py を参照してください。