udev実行スクリプトを追加する方法

udev実行スクリプトを追加する方法

モニターが接続/分離されたときにudevを実行したいスクリプトがいくつかあります。私はudevルールを追加しましたが、udevで実行したいスクリプトを追加する方法がわかりません。

私は次のようにnix外部スクリプトにudevを指定しようとしました。

RUN+="/home/myUser/scriptName.sh"

次のエラーにより再構築が失敗します。

/home/myUser/scriptName.sh is called in udev rules but not installed by udev

それでは、udevを介してスクリプトをインストールする方法は?

スクリプト用のnix式を生成し、他のすべてと一緒にインストールする必要がありますか?

ありがとうございます。

ベストアンサー1

婦人声明

これは不純な解決策です。つまり、configuration.nixそれだけでは目標を完全に達成できないという意味です。サーバーでは使用しないことをお勧めします。

一方、私はラップトップでこのアプローチを使用していますが、それでも他の場所からドットファイルをインポートし、ワークストアを抽出し、バックアップを復元するなどの作業が必要なので、とにかくnixだけでは表現できないものがあります。説明する式。

回答

configuration.nix私が集中したのが、ノートパソコンがudevドッキングされた状態で外部モニターを設定する役割を担う部分です。

  services.udev = {
      extraRules = ''
        SUBSYSTEM=="usb", ACTION=="add|remove", ENV{ID_VENDOR}=="Lenovo", ENV{ID_MODEL}=="Lenovo_ThinkPad_Dock", RUN+="${pkgs.bash}/bin/bash /home/hoodoo/.local/bin/dock_handler.sh"
      '';
  };   

ここでnixインタプリタをだますことは、私が適切にインストールされたものを呼び出して、私のスクリプトを引数として密輸するという事実です(そして、可能なすべてのコマンドに対して可能なすべてのオプションをすぐに把握する能力はありません)。

気になる方のために解決方法の一部をお上げしますここそしてここ

おすすめ記事