Linuxで停止認識プログラムを作成する

Linuxで停止認識プログラムを作成する

jackdやそのようなクライアントなどの物理的な時間に依存するプログラムは、Linuxのラップトップでソフトウェアがフリーズしても正常に動作しません。ソフトウェアが一時停止する前に接続を切断して再起動したときに再接続することによって、多くの「タイミングエラー」が発生し始めるクライアントを修正したいと思います。システム構成なしでクライアントでこれを実行できますか?システムスクリプトを編集してプログラムを終了できることを知っていますが、root権限なしで保留中のイベントを直接待つことができるインタフェースはLinuxにありますか?物理時間に依存していますが、停止を正しく処理するプログラムを知っていますか?

ベストアンサー1

プログラムが物理時間に依存している場合は、とにかく定期的に時計を確認する必要があります。リアルタイムを保証するカーネルパッチを含むLinuxバージョンで実行されているリアルタイムプログラムでない限り、スケジューラは一定時間プロセスの実行を遅らせることがあります。プロセスはSTOP信号によって停止することもできます(再起動するために送信されたCONT信号にハンドラを配置することによってこれを知ることができます)。

ソフトウェアが長時間経過したという事実だけを知る必要がある場合は、タイマーを設定してソフトウェアを起動することができます。しかし、あなたが提示した例では、それ以上の理解が必要です。たとえば、ネットワーク構成の変更を理解する必要があります。このようなプログラムの場合、システムの一時停止/再開イベントに接続すると、単にタイムジャンプを検出するよりも多くの情報を取得できます。

システムの一時停止/再開イベントに接続するには、root権限が必要であるか、D-Busアクセス権限を持つセッションで実行する必要があります。 (どのD-Bus活動を購読する必要があるかわかりません。)

システムの一時停止/再開イベントに接続すると、再開時だけでなく一時停止時にもコードを実行できるという利点があります。

おすすめ記事