再起動せずにudevルールを再ロードする方法は?

再起動せずにudevルールを再ロードする方法は?

新しく作成されたルールを実行できるように、udevルールをどのように再ロードする必要がありますか?

私はArch Linuxを実行していますが、ここにはコマンドはありませんudevstart

また、確認すると/etc/rc.dudevサービスはありません。

答え1

# udevadm control --reload-rules && udevadm trigger

答え2

Udevは以下を使用します。inotifyルールディレクトリ、ライブラリ、およびローカル設定ツリー(通常はおよび/lib/udev/rules.d存在)/etc/udev/rules.dの変更を監視するメカニズムです。したがって、ほとんどの場合、ルールファイルを変更するときにアクションは必要ありません。

異常な操作を行う場合(たとえば、ルールに別のディレクトリのファイルが含まれている場合など)、udevデーモンに明示的に通知するだけです。その後、デーモンに一般的な規則を使用して構成を再ロードするように要求できます。ため息をつくpkill -HUP udevd)。またはあなたは使用することができますudevadm発注する: udevadm control --reload-rules

ただし、udevのさまざまなバージョンには、歴史的に自動リロードルールの別のトリガーがあることに注意してください。したがって、疑わしい場合は電話してくださいudevadm control --reload-rules。何があっても害を及ぼすことはできません。

udevルールは、デバイスを追加した場合にのみ適用されます。接続されたデバイスにルールを再適用するには、設定が変更されたudevadm triggerデバイスと一致する正しいオプションを呼び出して明示的に実行する必要がありますudevadm trigger --attr-match=vendor='Yoyodyne' --attr-match=model='Frobnicator 300'

答え3

いつか再び必要だと思うので追加します。

場合によっては、イーサネットデバイス番号とMACアドレスが正しく一致しないことがあります。仮想マシンで実行され、各デバイスが別のVLANに割り当てられている場合など、これは時々重要です。

  1. ネットワークインタフェースを閉じてから
  2. 修正/etc/udev/rules.d/70-persistent-net.rules(または同等)
  3. リフレッシュudevadm control --reload-rules
  4. 再トリガーudevadm trigger --attr-match=subsystem=net
  5. ネットワークインターフェイスを起動します。

私はこれがどれほどうまくいくのか驚きました。

答え4

私にとっては、次のコマンドシーケンスが期待どおりに機能しました。

再起動せずに数字を/etc/udev/rules.d/70-persistent-net.rules変更して再ロードできるように修正しました。eth

/etc/init.d/networking stop
/etc/init.d/udev stop
udevadm control --reload-rules
/etc/init.d/udev start
/etc/init.d/networking start

その後、コンピュータを再起動せずにランタイムに正常にロードされました。

これに対するどんな提案や提案も歓迎します。マンページを読みながら直接発見したものだからです。

関連情報