私はバッテリーの残量がいつ変わるかを知りたいと思い、単に5秒ごとにチェックするデーモンを実行したくありません。
実行しようとしましたが、inotifywait -m /sys/class/power_supply/BAT1/capacity
修正が登録されていません。cat
時々実行すると、別の結果が表示されます!実際に使用または実行したcat
ときにのみ何かを報告しますacpi
。私はまた、inotifywait
BAT1ディレクトリ内の他のファイルに対して実行しようとしましたが、誰もファイルを変更しなかったことを発見しました。新しい結果が出ましたが、言葉ですcat
。
inotifywait
それでは、修正を報告してみてはいかがでしょうか。 inotifyが利用できない場合は、バッテリー残量の変更に関する即時アップデートをどのように受け取ることができますか?
答え1
@rudibがコメントで述べたように、その中にあるものはすべて/sys
仮想です。各ファイルの内容は、実際に読み取ると、対応するカーネルデータ構造から再生成されます。したがって、ファイルを作成して変更するという意味では変更はありません。
同じだ/proc
。
バッテリーステータス通知は次のように提供されます。一般的なNetlinkメッセージ、ファミリ名=、acpi_event
およびマルチキャストグループ名acpi_mc_group
。残念ながら、シェルスクリプトからNetlinkメッセージに簡単にアクセスできるツールはありませんが、pyroute2
このツールはACPIイベントを含むnetlinkメッセージをデコードすることもでき、Pythonコードの例として役立ちます。