問題タブ [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.
perl - UNIXで任意のスクリプトをデーモン化するにはどうすればよいですか?
任意の汎用スクリプトまたはコマンドをデーモンに変換できるデーモン化ツールが欲しいです。
私が対処したい2つの一般的なケースがあります:
永久に実行する必要があるスクリプトがあります。停止した場合 (または再起動時) は、再起動します。一度に 2 つのコピーが実行されないようにします (コピーが既に実行されているかどうかを検出し、その場合は起動しません)。
簡単なスクリプトまたはコマンド ライン コマンドを永久に繰り返し実行したい (実行の間に短い休止を挟む) 場合があります。繰り返しますが、スクリプトの 2 つのコピーを同時に実行することはできません。
もちろん、ケース 2 のスクリプトの周りに "while(true)" ループを記述し、ケース 1 のソリューションを適用するのは簡単ですが、より一般的なソリューションは、ケース 1 のスクリプトに適用されるため、ケース 2 を直接解決するだけです。まあ(スクリプトが死ぬことを意図していない場合は、一時停止を短くするか、一時停止しないでください(もちろん、スクリプトが実際に死ぬことがない場合、一時停止は実際には問題になりません))。
ソリューションには、たとえば、既存のスクリプトにファイル ロック コードや PID 記録を追加することは含まれないことに注意してください。
より具体的には、次のように実行できる「デーモン化」プログラムが欲しい
または、たとえば、
これにより、times.txt に追加された日付のリストが増え続けます。(デーモン化する引数が上記のケース 1 のように永久に実行されるスクリプトである場合、デーモン化は引き続き正しいことを行い、必要に応じて再起動します。) 次に、上記のようなコマンドを .login に入れることができます。および/または1時間ごとまたは1分ごとにcronで実行します(予期せず死ぬことをどれだけ心配しているかによって異なります)。
注意: デーモン化スクリプトは、デーモン化するコマンド文字列を覚えておく必要があります。これにより、同じコマンド文字列が再度デーモン化された場合に、2 番目のコピーが起動されなくなります。
また、このソリューションは理想的には OS X と Linux の両方で動作するはずですが、どちらか一方のソリューションも歓迎します。
編集: で呼び出す必要がある場合は問題ありませんsudo daemonize myscript myargs
。
(私がこれをすべて間違っていると考えている場合、または簡単で汚い部分的な解決策がある場合は、それも聞いてみたいです。)
PS: 役に立つ場合は、python に固有の同様の質問を次に示します。
そして、同様の質問に対するこの回答には、任意のスクリプトを手早く悪者扱いするための便利なイディオムのように見えるものがあります。
java - Javaプログラムをデーモン化する方法は?
Linuxシステムでデーモン化したいJavaプログラムがあります。つまり、シェルで実行を開始し、ログアウトした後も実行を継続したいと考えています。また、プログラムをきれいに停止できるようにしたいと思います。
シェルスクリプトとJavaコードの組み合わせを使用してトリックを実行するこの記事を見つけました。見た目は良さそうですが、できればもっとシンプルなものが欲しいです。
LinuxシステムでJavaプログラムをデーモン化するための好ましい方法は何ですか?
java - FAST アプリケーション間通信に適したプロトコルは?
クエリにすばやく応答できるサーバー アプリケーションを実装しようとしています。サーバーはJavaで実装されています。複雑な通信プロトコルに多くの時間を浪費したくないので、1) サーバーにクエリを実行する 2) サーバーにそのクエリに回答させる、ベストプラクティスの方法を探します。クエリと回答の両方が整数から整数リストにマップします。
関連:クエリ/応答プロトコルを処理し、着信クエリを管理する(それらをキューに入れる)複合フレームワークはありますか?
プレーン デーモンとして実装するか、Web サービスとして実装するかはわかりません。Web サービスは、別のマシンに比較的簡単に移動できるため、より柔軟に見えますが、プレーンなデーモンの方が高速に聞こえます。
ruby - RubyDaemonsgemで停止を検出する
私はrubyデーモンgemを使用しています。ストップアクションにいくつかのステップを追加するにはどうすればよいですか?stopが呼び出されたことを検出し、それにコードを追加できることを期待していました。誰かが私がこれを達成する方法を知っていますか?
linux - 長時間実行される Java プロセス
Linux サーバーのバックグラウンドで実行する Java システムを継承しました。指示では、開始する必要がありjava -jar start.jar
ます。これは私の好みには少しもろすぎるようです。バックグラウンドで実際に実行したいのですが、理想的には起動時に自動的に起動します。
これを達成するための最良の方法は何ですか?環境内でシステムを実行することを検討しましたがscreen
、これは正常に動作しますが、システムの再起動時に自動的に起動しません。
php - デーモンに PHP を使用するのは賢明ですか?
バックグラウンド プロセスを作成したいのですが、これらは通常、C などで記述されていると言われています。私は最近、PHP を使用してデーモンを作成できることを知りました。この方法で PHP を使用する必要がある場合は、アドバイスを得たいと思っていました。
デーモンに対する私の要件は次のとおりです。
- 行が MySQL データベース テーブルに追加されたかどうかを継続的に確認する
- データベースから取得したものに対してFFmpegコマンドを実行します
- 出力を MySQL テーブルに挿入する
この決定を下すために他に何を提供できるかわかりません。追加するために、私は以前にCをやったことがありません。Java と PHP、および基本的な bash スクリプトのみ。
それほどパフォーマンスの違いはありますか?
私の無知を許してください、私は学んでいます!:)
皆さんありがとう
python - 実行中の python デーモンとの通信
デーモンとして実行される小さな Python アプリケーションを作成しました。スレッドとキューを利用します。
このアプリケーションを変更して、実行中に通信できるようにするための一般的な方法を探しています。ほとんどの場合、その健康状態を監視できるようにしたいと考えています。
一言で言えば、私はこのようなことができるようになりたいです:
後で、私は一緒に来て、次のようなことをしたいと思います:
明確にするために、Django にインスパイアされた構文を実装することに何の問題もありません。デーモン化されたプロセスにシグナルを送信する方法(開始)、またはそのようなシグナルを処理して応答するデーモンを作成する方法がわかりません。
上で言ったように、私は一般的なアプローチを探しています。私が今見ることができる唯一の方法は、必要なすべてのものを常にファイルに記録するようにデーモンに指示することですが、それを行うためのより簡単な方法があることを願っています.
更新:うわー、たくさんの素晴らしい答え。本当にありがとう。Pyro と web.py/Werkzeug の両方のアプローチを検討すると思います。この時点で Twisted は私が噛み締めたいと思っている以上のものです。次の概念上の課題は、ワーカー スレッドをハングアップさせずに対話する方法だと思います。
再度、感謝します。
ruby-on-rails - Railsデーモンは開発モードのままです
メールボックスの新しいメールをチェックするデーモンを備えたRailsアプリケーションがあります。このタスクにはFetcherプラグインを使用しています。デーモン ファイルは次のようになります。
そのため、新しいメールを取得して解析し、解析したデータからリソースを作成します。ただし、リソースを保存しようとすると、例外がスローされます。これは、スクリプトが開発環境に自動的に割り当てられるためです。そのため、本番環境(必要な構成)ではなく、開発データベース構成を使用しています。
私はスクリプトを開始しようとしました:
しかし、役に立たない。environment.rb ファイルをロードすると、デフォルトで開発環境になり、development.rb と開発データベース構成が database.yml からロードされるようです。
考え?提案?
ありがとう