私はデバイスエラーを監視し、グローバル電子メールを介して警告を送信するスクリプトを作成しようとしました(つまり、OnFailure=
監視したいすべてのデバイスではない場合)。
ドキュメントでは、私はJobRemoved
仕事のために私が探しているのと同じ音を出すD-Bus信号を見つけました。具体的には、Type=simple
サブプロセスが作成されるとすぐに終了するのをJobRemoved
待たずにそのユニットが実行されることを意味します。
デバイスの状態変化をグローバルに監視する同様の信号がありますか?
(これは私の現在の試みです:協会)
答え1
に接続することができますプロパティが変更されました。各セルの属性が変更されるたびに信号が放出されます。財産アクティブ状態
デバイスが現在アクティブであるかどうかを反映するステータス値を含みます。現在定義されている状態は、アクティブ、リロード、非アクティブ、失敗、有効、無効です。 activeは、デバイスがアクティブであることを意味します(明らかに...)。リロードは、デバイスがアクティブであり、現在の設定をリロードしていることを示します。非アクティブとは、非アクティブであり、以前の実行が成功したか、以前の実行がまだ発生していないことを意味します。 failed は、そのジョブが非アクティブであり、以前の実行が失敗したことを意味します(これについての詳細は、結果属性のサービスなど、デバイスタイプ固有のインターフェイスにあります。以下を参照)。アクティブとは、そのデバイスが以前に非アクティブであったが、現在アクティブであることを意味します。これとは対照的に、無効化は、デバイスが現在無効になっているプロセスにあることを示します。
(からsystemddbus ドキュメント)。
初期デバイスのリストを取得するには、このListUnits
方法を使用してデバイスが追加/削除されたときに通知を受けるようにシグナルをUnitNew
購読できます。UnitRemoved
以下を含む、すでに使用している既存のプロジェクトがいくつかあります。システム監視プログラムそしてサグベシェード。