問題タブ [watchdog]

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 投票する
4 に答える
29326 参照

c# - What's the best way to watchdog a desktop application?

I need some way to monitor a desktop application and restart it if it dies.

Initially I assumed the best way would be to monitor/restart the process from a Windows service, until I found out that since Vista Windows services should not interact with the desktop

I've seen several questions dealing with this issue, but every answer I've seen involved some kind of hack that is discouraged by Microsoft and will likely stop working in future OS updates.

So, a Windows service is probably not an option anymore. I could probably just create a different desktop/console application to do this, but that kind of defeats its purpose.

Which would be the most elegant way to achieve this, in your opinion?

EDIT: This is neither malware nor virus. The app that needs monitoring is a media player that will run on an embedded system, and even though I'm trying to cover all possible crash scenarios, I can't risk having it crash over an unexpected error (s**t happens). This watchdog would be just a safeguard in case everything else goes wrong. Also, since the player would be showing 3rd party flash content, an added plus would be for example to monitor for resource usage, and restart the player if say, some crappy flash movie starts leaking memory.

EDIT 2: I forgot to mention, the application I would like to monitor/restart has absolutely no need to run on either the LocalSystem account nor with any administrative privileges at all. Actually, I'd prefer it to run using the currently logged user credentials.

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

python - カウントダウンウォッチドッグタイマーにキューを使用するPython

4 つのスレッドを生成するプログラムがあります。これらのスレッドは無期限に実行し続ける必要があり、そのうちの 1 つがクラッシュした場合は、再起動できるように知る必要があります。

4 つの数字のリストを使用し、それをキューを使用して各スレッドに渡すとします。次に、各スレッドがしなければならないことは、メインスレッドがカウントダウンしている間にタイマーのセクションをリセットすることだけです。

そのため、キューが空になることはなく、1 つの値だけが 0 になる可能性があり、これが発生した場合、メイン スレッドはその子が応答していないことを認識し、それに応じて動作できます。

しかし、キューから .get() を実行するたびにキューが空になるため、キューから取得して変数に格納し、変数を変更してキューに戻す必要があります。

このようなキューをウォッチドッグに使用しても問題ありませんか。

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

c# - ウォッチャースレッドの管理-発生した例外と参加はどのように機能しますか?

所有していないAPIからのログオンプロセスがあり、ときどきハングします。たとえば、30秒より長くかかる場合は、それを強制終了して再試行します(2〜3秒程度しかかからないため)。

スレッドの中止がどのように機能するか、中止後に参加する必要があるかどうかについて少し混乱しています。これが私の質問とそれに続く私がやろうとしていることの例です:

質問:

  1. Abortは、呼び出されたスレッドでスレッド中止例外をスローします。それは伝播しますか?呼び出し元のスレッドで明示的に処理する必要がありますか、それともスレッドが停止するだけですか?

  2. 中止されたスレッドに参加して、ゾンビ化しないようにする必要がありますか、それとも* NIXプログラミングの世界から混乱しているだけですか?

    /li>
0 投票する
1 に答える
14042 参照

python - ImportError:ウォッチドッグをインストールした後にオブザーバーという名前のモジュールがありません

pip:を使用してモジュールをインストールした後、公式のウォッチドッグの簡単な例を実行しようとすると、エラーが発生します:watchdogpip install watchdog

誰か助けてくれませんか?

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

python - ウォッチドッグでファイル作成を検出する

特定の名前のファイルがディレクトリに作成されたことを検出しようとしています。watchdogのおかげでやっています。作成は正しく検出されますが、検出が完了したらアプリケーションを適切に終了する方法がわかりません。

私のコードは次のとおりです。

私はpythonが初めてで、何が悪いのかわかりません。検出は専用スレッドでスケジュールされているようで、join() メソッドはこのスレッドが終了するのを待っています。したがって、待機/ループを停止するためにオブザーバーで正しいメソッドを呼び出していないと思いますが、ウォッチドッグのドキュメントでは、使用できるメソッドが何であるかを指摘するのは本当に明確ではないようです。

誰かが私の目標を達成する方法を知っていますか?

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

networking - em1:ウォッチドッグタイムアウト-リセット-freebsd8.3/ネットワークダウン

私は私が見つけることができないか、頭も尾も見つけることができない大きな問題を抱えています。私はこのエラーをグーグルで検索しましたが、関連する解決策は見つかりませんでした。

問題:

私は約8台のサーバーを持っており、すべてfreebsd 8.3 p3/p4を実行しています。このファイルサーバーは約300〜400 mb/sをプッシュしています。

これは2回目です。ネットワークカードが死んだようです。2枚のネットワークカードがあり、プライベートネットワーク経由でサーバーにアクセスできますが、パブリックネットワークが完全にダウンしているだけで、すべて問題なく動作します。ネットワークインターフェイスを再起動してみました:/etc/rc.d/netif restart && service routing restart | ifconfig em1 down && ifconfig em1 upですが、成功しません。

サーバーを再起動した場合にのみ、接続を回復できます。

以下は、ネットワークカードドライバ情報を示すdmesg.bootからの出力です。


これをデバッグして修正するための助けが本当に欲しいです。なぜなら、それは通常、私が眠っている間に、ランダムな日に起こり、それが私を夢中にさせているからです。私は自分の睡眠が大好きです。

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

php - PHP スクリプト ウォッチドッグ タイマー

コミュニティに対して、私は現在、標準チャンクをそのまま使用してファイルを提供する PHP スクリプトを作成しています。

私がやりたいのは、flush() の後に timerReset(); のような何らかのメソッドを追加することです。次に、ある種のタイマーループで:

このようにして、遠端がパケットの受信を停止したり、ストリームに追いつかなくなったりした場合、次のようなことを行うことができます。 a) エンコード ビットレートを変更します。b) スクリプトを停止し、リソースをクリーンアップ/解放します。

Apache / PHP が Keep-Alive などのヘッダーをネゴシエートできることは認識していますが、それらを正確に活用する方法や実際に使用する方法がわかりません。
AJAX サービスの使用は好ましくありません。ここでの目的は、アプリケーション サーバーを使用して、インターネット経由でファイル サーバーからモバイル デバイスにメディア コンテンツをストリーミングすることです。「アプリ」を作成することも検討しましたが、クロスプラットフォーム コーディング (android/bb/iOS/W7M) と SmallTalk (ObjectiveC) に関する非常に限られた知識により、不要な複雑さが追加されます。

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

c++ - モニタープログラムがフォアグラウンドで実行されている間、バックグラウンドのプログラムはコンソール入力のフラッドを受け取ります

起動してメインプログラムが実行されているかどうかを定期的にチェックする小さなbashスクリプトをまとめました(コンソールアプリケーション、GUIなし)。私の主なアプリケーションは、アプライアンス(組み込み)システムの内臓であると想定されており、継続的に実行する必要があります。

私のメインプログラムには、いくつかのTCP、UDP、Unixドメインソケットとstdinを監視するc ++ select()(タイマー付き)ループが含まれています。

フォアグラウンドで実行すると、myProgramは期待どおりに実行されます。誰もデータを送信しない場合は、select()に2秒ごとにタイムアウトし、タイマーなどをいじって、再び待機します。ENTERで終わるキーボードアクティビティはすべて取得されて処理されます。コンソール入力は、「コンソールで受信されたNバイト」メッセージを表示します(今のところ!)

ただし、スクリプトがmyProgramをバックグラウンドで起動すると、stdinが閉じて再度開いているか、他のアプリがENTERのストリームをアプリに送信しているかのように、「コンソールで受信した)バイトのメッセージの一定のストリームが表示されます。

誰か説明してもらえますか?

実際、バックグラウンドにある状態が原因でstdinがovrを閉じたり再度開いたりしている場合、myProgramがバックグラウンドになっていることを検出してstdinから切断することは可能ですか?stdoutとstderrからも切断する必要がありますか?それが私をデーモンにするだろうと思います。

そして最後に、ウォッチドッグプログラムは、myProgramがまだ実行されていることを追跡するためのより良い方法でしょうか?ウォッチドッグは、マシン全体を再起動するのではなく、プログラムを再起動できますか?

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

embedded - 組み込みシステムにウィンドウ ウォッチドッグを使用する場合

この投稿は、それを使用する方法を尋ねるためのものではなく、いつ使用するためのものです。

ウィンドウ付きウォッチドッグ (WW) に関するドキュメントは多数あり、ほとんどのマイクロコントローラーには既に含まれています。すべてのベンダーは、WW は安全アプリケーション向けであると述べていますが、このトピックについて詳しく述べている人は誰もいません。

具体的な例を挙げたいと思いますが、「車のブレーキシステム」以上の例があります。

WW に給餌するのが早すぎても遅すぎてもいけないことは誰もが知っていますが、このシナリオが安全性の向上にどのように役立つのでしょうか?

ありがとうございました!!