問題タブ [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.
php - ignore_user abort と set_time_limit(0) を使用して、PHP で作成されたデーモンはどの程度実行可能ですか。
私はデーモンをいじくり回しており、PHPを使用してこれを行うことがどれほど実現可能か(メモリとCPUの使用量、および信頼性の観点から)疑問に思いました:
この単純な例 ( ignore_user_abortの PHP マニュアルから改作) は単なるコンテナー スクリプトです。実際の機能はwhile
ループ内に配置されます。
このスクリプトをラップトップで 7 時間実行しましたが、問題ないように見えますが、あまり効果がありません。他の誰かがこれを試しましたか?
c# - キープレスをリッスンする C# のデーモン
デーモンとして実行するか、タスクバーに座って特定のキーが押されるのを待つ小さな C# アプリケーションを作成しようとしています。予想されるキー押下に遭遇したら、いくつかのアクションを実行します。
これは主に、私が書いている Web サービスにデータをすばやく投稿するために使用されます。しばらくネットを見回しましたが、検索用語が漠然としていて、具体的な例やガイドに出くわしませんでした。
ありがとう、
マイク・トリプシック
python - デーモン化されたプロセスの終了に関する問題
他のいくつかの子プロセスを生成するデーモン プログラムを作成しています。スクリプトを実行した後stop
、終了しようとしているメイン プロセスが実行され続けているため、本当に混乱しました。
stop
スクリプトは単なるワンライナーですが、その後os.kill(pid, signal.SIGHUP)
、子プロセス (ワーカー プロセスと http サーバー プロセス) は正常に終了しますが、メイン プロセスはそこにとどまります。
qt - 起動時に Linux デーモンとして Qt アプリケーションを実行する
TCP サーバーなどを含む Qt アプリケーションを開発しました。現在、Ubuntu パッケージを作成して、起動時にアプリケーションを自動的に起動しようとしています。
誰もログインしていなくても、アプリケーションは実行されている必要があります。つまり、/etc/init.d/ のスクリプトを介してデーモンが開始されます。
init.dスクリプトで、開始時にアプリケーションを実行し、停止時にkill-signalを送信するだけでしたが、それはアプリケーションがフォアグラウンドで実行され、init-scriptをブロックすることを意味します。
他の質問のようなフォークはほとんどうまくいくようですが、TCP サーバーを起動しようとすると「不明なエラー」が発生します。それでも、さまざまな Linux ディストリビューションの起動時にバックグラウンドでアプリケーションを実行する init-script を簡単に作成できる方法があるはずです。
誰かが私を正しい方向に向けることができますか?
Qt 4.5 で Ubuntu 9.10 を使用する
macos - GUIセッションを持つすべてのユーザーの起動エージェントの開始/停止
ルートレベルのデーモンからセッションごとのGUIエージェントを開始/停止できる必要があります。
私がやりたいのは基本的に
ただし、これは1つのインスタンスのみを開始/停止し、現在のGUIセッションでrootとして実行されます。sudoをオフにしておくと、開始します
bsexecの他のさまざまな順列をいじってみましたが(load / unloadコマンドを使用してbsexecからセカンダリスクリプトを呼び出すことを含む)、インスタンスをroot以外のものとして起動したり、別のGUIセッションで起動したりすることはできません。 。
私もとをいじってみましたが、そこでも運がsu - <user> ...
ありsudo -u <user> ...
ませんでした(多くの人が上記のリンクされた記事や他の場所で議論しているように)。
誰か考えがありますか?
編集:Graham Leeが以下に提案するように、ラッパーツールを使用してこれを実行しようとしましたが、次のエラーが発生します。
これは、私が使用しているコマンドラインコマンド、ラッパー、およびスクリプトです(501はユーザーIDであり、63093はシステムにログインしている別のユーザーのlaunchdのpidです)。
コマンドライン:
ラッパー:
脚本:
cocoa - Cocoa で特権ファイルの読み取り/書き込みを行うには、launchd デーモンが最適な方法ですか?
Any User/Current host プリファレンス ファイル (Preferences Utilities Reference に従って管理者権限が必要) に書き込み、plist (root のみが書き込み可能) を介して launchd エージェントを有効/無効にする必要があるアプリケーションがあります。
SFAuthorizationView
これらの値を変更する前に、ユーザーに管理者として認証することを要求するために使用しています。
これらの値を実際に変更する最善の方法を決定しようとしています。
安価なハックのオプションは、BLAuthentication を介して、または自分で似たようなものを作成して、AuthorizationExecuteWithPrivileges()
andmv
またはを使用するようです。defaults
これのマイナス面は、実行しているコマンド ライン アプリの戻り値が得られないことと、遭遇した奇妙な難解なバグ (特定の状況で -60008 エラーが発生するなど) です。明らかに、これは Apple によって強く推奨されていますが、人々は実際にそれを行い、ある程度の成功を収めているようです。
--self-repair
2 番目にハックなオプションは、さまざまな場所で説明されているように、suid ビットを設定してオプションを使用してヘルパー アプリを作成することです。これは可能に思えますが、おそらく 3 番目のオプションよりも問題が少ないとは言えません。
launchd
3 番目のオプションは、ルートとして実行され、ソケットを介してアプリケーションと通信する本格的なデーモンを作成することです。これは、いくつかの plist ファイルを読み書きするのは少しやり過ぎのように思えますが、将来的には他の用途を見つける可能性もあり、それが私のアプリケーションの唯一のデーモンではないので、単に別のものを追加します。
このサンプル コードを自分の目的に合わせて変更することを考えています。
私の2つの質問は次のとおりです。
launchd デーモン オプションは、これに最適なルートのように思えますか、それとももっと簡単なルートがありませんか?
他の誰かがそのコードを似たようなものの基礎としてうまく使っていますか? テストアプリで問題なく使用できましたが、皆さんの意見を聞きたいです。
java - OS XでTomcatをデーモンとしてインストールする方法は?
OS XにデーモンとしてTomcatをインストールするにはどうすればよいですか?ユーザーがログオンしていない場合でも実行されます。
今のところ、シングルユーザー用にTomcatをインストールし、ログイン時に実行することで生き残ることができるでしょう。しかし、長期的には、起動時にサービスとしてインストールして実行する必要があります。
python - Pythonでバックグラウンドプロセスを開始するにはどうすればよいですか?
シェルスクリプトをもっと読みやすいPythonバージョンに移植しようとしています。元のシェルスクリプトは、バックグラウンドで「&」を使用していくつかのプロセス(ユーティリティ、モニターなど)を開始します。Pythonで同じ効果を達成するにはどうすればよいですか?Pythonスクリプトが完了したときにこれらのプロセスが停止しないようにしたいと思います。どういうわけかデーモンの概念に関係していると思いますが、簡単にこれを行う方法を見つけることができませんでした。
ruby - 起動時に bash スクリプトから Ruby デーモンを起動するときの非常に奇妙な動作
Rightscale を使用して、Amazon EC2 でインスタンスを起動しています。私の起動スクリプトはすべてうまく機能し、フォルダー内の以下のファイル名を取得するなどのことを行います。最後の起動スクリプトは次のとおりです。
それを使用して、Ruby で作成したデーモンを起動したいと考えています。エラーの出力なしでブートスクリプトとして実行されますが、ssh経由でログインすると、それらが開始されていないことがわかります。次に、上記のスクリプトを手動で実行すると、開始されます。なぜ彼らはブートスクリプトから始めていないのですか?
次の投稿を見つけました: http://blog.angelbob.com/posts/124しかし、それが関連しているかどうかはわかりません。