CentOS6.5ではデフォルトでudevdというデーモンプロセスが実行されています。このプロセスの概要についてまとめました。
※目次をクリックすると目次の下部にコンテンツが表示されます。
$ ps -ef root 425 1 0 Jul25 ? 00:00:00 /sbin/udevd -d
2)どのパッケージに属する?
$ rpm -qf /sbin/udevd
udev-147-2.51.el6.x86_64
3)udevパッケージの設定ファイル一覧
$ rpm -qc udev
/etc/scsi_id.config
/etc/sysconfig/udev
/etc/udev/udev.conf
4)udevパッケージの文書ファイル一覧
$ rpm -qd udev
/usr/share/doc/udev-147/COPYING
/usr/share/doc/udev-147/ChangeLog
/usr/share/doc/udev-147/NEWS
/usr/share/doc/udev-147/README
/usr/share/doc/udev-147/README.keymap.txt
/usr/share/doc/udev-147/TODO
/usr/share/doc/udev-147/writing_udev_rules/index.html
/usr/share/man/man7/udev.7.gz
/usr/share/man/man8/scsi_id.8.gz
/usr/share/man/man8/udevadm.8.gz
/usr/share/man/man8/udevd.8.gz
5)udevパッケージの概要
“yum info udev”コマンドでパッケージの概要を確認しました。
①サマリー
A userspace implementation of devfs
②URL
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
③説明
udevパッケージは、ユーザースペース内でsysfs、netlinkを使ったdevfsの実装を含む。
※sysfs
・Linuxカーネル 2.6 によって提供される仮想ファイルシステム。
・デバイスやドライバについての情報をカーネルモデルからユーザ空間へエクスポートし、設定するためにも使用される。
※netlink
・カーネルモジュールとユーザー空間のプロセス間で情報をやり取りする。
・ユーザープロセスに対しては標準的なソケットベースのインタフェースを使用。
※devfs
・カーネルが管理するデバイス関係の情報をファイルシステムに見せかけて扱うことができる
・udevdは、イベントを管理するデーモン。
・udevdは、カーネルのueventをリッスンし、受け取ったイベントをudevに引き渡す。
正しいイベントの順序を保証して対処する。子デバイスのイベントは、その親のイベントがデバイスのハンドリングを完了するまで遅延される。
・実行中のデーモンの振る舞いは、udevadmによる制御で変更できる。
・ファイルのパスは、/etc/rc.d/init.d/udev-post。
・ファイルシステムマウント後、udev用のスクリプトをPostする。
・生成したudevルールを/etc/udev/rules.dディレクトリに移動する。
2)/etc/udev/rules.dディレクトリ内のファイル一覧
私の環境(CentOS6.5)には下記ファイルがありました。
$ ls /etc/udev/rules.d
60-fprint-autosuspend.rules 70-persistent-net.rules 99-fuse.rules
60-raw.rules 90-alsa.rules
70-persistent-cd.rules 90-hal.rules
3)起動スクリプトの概要
①設定ファイル読込
. /etc/sysconfig/udev
②失敗したudevイベントを再トリガー
/sbin/udevadm trigger –type=failed
③udevのパーシステントルールを追加
for file in /dev/.udev/tmp-rules--*; do dest=${file##*tmp-rules--} # check, if anything is todo [ "$dest" = '*' ] && exit 0 echo -n $STRING cat $file >> /etc/udev/rules.d/$dest rc=$(($rc+$?)) rm -f $file done
1)概要
・udevadmは、udevの管理ツール。
・udevadmは、コマンドとそのオプションを指定して実行する。
・udevのランタイムの振る舞いをコントロールし、カーネルイベントをリクエストしたり、イベントキューを管理したりする。さらに簡単なデバッグ機能を提供する。
2)コマンドの構文
udevadm [–debug] [–version] [–help]
udevadm info options
udevadm trigger [options]
udevadm settle [options]
udevadm control command
udevadm monitor [options]
udevadm test [options] devpath
①udevadm info options
・udevデータベース内に保存されているデバイス情報を問い合わせ。
②udevadm trigger [options]
・カーネルからデバイスイベントをリクエスト。通常、システムのcoldplug時にイベントをリプレーするのに使用される。
③udevadm settle [options]
・udevイベントキューを監視し、すべてのカレントイベントが処理されると終了する。
④udevadm control command
・実行中のudevデーモンの内部状態を変更する。
⑤udevadm monitor [options]
・カーネルのueventとudevルールによって送信されたイベントをリッスンし、コンソールにイベントのdevpathを出力する。
カーネルのueventとそのudevイベントのタイムスタンプを比較することによってイベントタイミングを分析するのに使用される。
⑥udevadm test [options] devpath
・指定したデバイスのudevイベントの実行をシミュレートし、デバッグを出力する。