問題タブ [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.
python - Pythonウォッチドッグアプリケーション
えーと...私はこれをウェブで徹底的に検索し、満足のいく答えを見つけることができなかったと約束します>。<
Pythonアプリの「コントローラー」を作成しようとしています。つまり、実行してからサーバーを生成し、終了シグナルを取得するのを待ってから、必要に応じてスクリプトを再起動する必要があります。
このコードはかなり厄介ですが、これまでのところ、これが付属しています...常に認識されないexitSignal 1で返され、サーバープロセスを生成することもありません。誰かが私に光をくれませんか?
厄介なコードでごめんなさい!(= ^、^ =)
python - Python-親スレッドに子スレッドを処理させる例外
新しいスレッドを生成した親に、生成されたスレッドの例外をキャッチさせる方法はありますか?以下は、私が達成しようとしていることの実際の基本的な例です。例外が発生するとカウントを停止するはずですが、キャッチする方法がわかりません。例外はスレッドセーフですか?モジュールを使用できるようにしたいとSubprocess
思いますが、Python 2.3の使用に固執しており、他にこれを行う方法がわかりません。おそらくthreading
モジュールを使用していますか?
アップデート
私の元のコードは少し誤解を招くものでした。それは本当にこのようなものを探しています:
プログラムが何らかの理由でハングアップした場合にos.system呼び出しを強制終了するウォッチドッグを作成しようとしています。
erlang - プロセスを存続させるリモートノード
誰が見張りを見ているのですか?-(Decimus Iunius Iuvenalis)
私は次の設定をしています:
1つのノード('one@erlang.enzo')で、別のノード('two@erlang.enzo')を実行しているウォッチドッグを持つサーバープロセスが実行されています。サーバーが起動すると、リモートノードでウォッチドッグが起動します。サーバーが正常に終了しない場合、ウォッチドッグはサーバーを再起動します。ウォッチドッグが終了すると、サーバーはウォッチドッグを再開します。
ネットワークが起動した後、サーバーはランレベルの一部として起動されます。
サーバーはリモートノードも監視し、リモートノード(つまりノード)がオンラインになるとすぐにウォッチドッグを開始します。サーバーとウォッチドッグ間の接続が失われる理由は2つあります。1つは、ネットワークがダウンする可能性があることです。次に、ノードがクラッシュまたは強制終了される可能性があります。
私のコードは機能しているようですが、次のことが起こっているのではないかと少し疑っています。
- ウォッチドッグノードがシャットダウン(または強制終了またはクラッシュ)されて再起動されると、サーバーはウォッチドッグを正しく再起動します。
- ただし、ネットワークに障害が発生し、ウォッチドッグノードが実行を続けると、接続が再確立されたときにサーバーが新しいウォッチドッグを開始し、1つのゾンビウォッチドッグを残します。
私の質問は:
- (A)ゾンビを作成しますか?
- (B)ネットワークが失われた場合、サーバーはウォッチドッグがまだ生きているかどうか(およびその逆)をどのように確認できますか?
- (C)Bが可能な場合、古いサーバーと古いウォッチドッグを再接続するにはどうすればよいですか?
- (D)著名な読者であるあなたは、私のセットアップで他にどのような大きな(そして小さな)欠陥を見つけましたか?
編集:die
andkill_dog
メッセージは、不正な出口を偽造するためのものであり、デバッグを超えることはありません。
コードは次のとおりです。
java - Javaでメソッドを保護する方法(オーバーフローなど)
スレッドが長時間実行されないように保護する「WatchDog」を Java で作成する必要があります。オブジェクトの初期化では問題ありません。run() メソッドでリフレクションを使用して WatchDog とコンストラクターを呼び出すクラスを作成しました。
スレッドは簡単に停止できますが、オブジェクトの通常のメソッドを保護するにはどうすればよいですか? たとえば、オブジェクトのメソッドを呼び出し、このメソッドが無限ループを実行する場合、どうすればよいでしょうか?
ありがとう
c# - 関数呼び出しをブロックするために犬を監視します
一部のハードウェアセンサー用のクローズドソースAPIがあり、そのセンサーのクエリに使用しています。APIは、C#相互運用機能を介して使用するDLLとして提供されます。APIの機能がブロックされています。通常はエラー値を返しますが、場合によっては返されないこともあります。
この状況を検出できる必要があり、その場合はブロックされたスレッドを強制終了します。これはC#でどのように行うことができますか?
それらが呼び出されているスレッドは、BackgroundWorkerを介して作成されます。関数を呼び出す前に設定し、戻ったときにリセットできる、関数呼び出しをブロックするための簡単なウォッチドッグを探しています。ただそこに座って、私が戻ってくるのを待つべきです。そうしないと、スレッドが強制終了され、1)APIが再び解放され、アプリケーションのスレッドがまだぶら下がっていないため、最終的に戻った場合に何かを実行します。2)再実行などの他の回復手段を実行できます。 APIを初期化して、引き続き使用します。
linux - ソフトロックアップの理由は?
ソフト ロックアップの検出を有効にすると、1 秒ごとに実行さCONFIG_DETECT_SOFTLOCKUP
れるという新しいタスクが作成されます。'n' 秒間スケジュールに失敗したkhungtaskd
場合、カーネルはソフト ロックアップを宣言します。khungtaskd
khungtaskd
私の質問は、実行を妨げる理由は何ですか? 私が見つけたのは、割り込みコンテキストで既に取得したスピンロックを取得しようとすることです。ソフトロックアップにつながる他の理由は何ですか?
c - Linuxはクラッシュ時にアプリケーションを自動的に再起動します-デーモン
組み込みLinuxを実行しているシステムがあり、継続的に実行することが重要です。基本的には、センサーと通信し、そのデータをデータベースとWebクライアントに中継するためのプロセスです。
クラッシュが発生した場合、アプリケーションを自動的に再起動するにはどうすればよいですか?
また、ポーリングを実行するスレッドがいくつかあります(ソケットやUART通信など)。どのスレッドもハングしたり、予期せず終了したりしないようにするにはどうすればよいですか?スレッドに優しい使いやすいウォッチドッグはありますか?
python - vimでファイルを書き込んでも、OSXでファイル変更イベントは発生しません
OS Xで.lessファイル変更イベントを監視するためにウォッチドッグを使用しています。TextMateまたはSublimeTextを使用して.lessファイルの内容を変更すると、変更イベントがキャプチャされます。ただし、vimでコンテンツを編集すると、ファイル変更イベントは発生しません(ただし、vimで作成されたファイルのファイル作成イベントはキャプチャされます)。FSEventsとkqueueでも同じ動作が見られました(どちらもほとんど知識がありません)。
誰かがこの行動を説明できるのだろうか?
ios - iPhone アプリの com.apple.locationd.registration.xpcq による起動時のタイムアウト クラッシュ (0x8badf00d)
アプリの起動中に iTunes 経由で異常なタイムアウト クラッシュが発生します。これがスタックトレースです。位置情報サービスと関係があるようです (はい、ユーザーの位置を尋ねます)。このようなクラッシュの経験がある人はいますか?
sockets - UNIXドメインソケットを監視し、特定のコンテンツでイベントをトリガーするウォッチドッグ
特定のイベント (DSL 再接続による動的 IP 変更) に対応するために、2 つのクローズド ソース プロセス (ルーター ファームウェア) 間の IPC を監視する必要がある組み込みプラットフォーム (mipsel アーキテクチャ、Linux 2.6 カーネル) を使用しています。straceを介してこれまでにわかったことは、IP が変更されるたびに、DSL デーモンが特定のファイル名にバインドされた UNIX ドメイン ソケットに特別なメッセージを書き込むことです。メッセージは別のデーモンによって消費されます。
ここで私の要件は次のとおりです。特定の UNIX ドメイン ソケットを介したデータ フローを監視し、特定のメッセージが検出された場合にイベントをトリガーする (シェル スクリプトを呼び出す) 必要があります。ファイル名をinotifyで監視しようとしましたが、ソケットファイルでは動作しません。strace を常に実行し、その出力をフィルター処理して、フィルター処理されたログ ファイルの変更に対応できることはわかっていますが、strace はシステムの速度を実際に低下させるため、これは解決策としては重すぎます。また、cron を介して IP アドレスの変更をポーリングすることもできますが、ポーリング ソリューションではなくウォッチドッグが必要です。また、UNIX ドメイン ソケットを具体的に監視し、事前定義された方向に流れる特定のメッセージに反応できるツールがあるかどうかを調べることに興味があります。inotifywait に似たものを想像します。つまり、ツールは特定のイベントを待ってから終了し、
それを実行できる既存の Linux ツールはありますか? または、自分のプラットフォーム (glibc ではなく uClibc) でコンパイルできるスタンドアロン バイナリ用の単純な C コードはありますか? 私は C の専門家ではありませんが、makefile を実行することはできます。シェルからバイナリを使用することは問題ありません。私はシェル プログラミングについて十分に知っています。