Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器 mysqld等。守护进程的名称通常以d结尾
if [ -e /etc/udev/udev.conf ]; then . /etc/udev/udev.conf fi
. /lib/lsb/init-functions
if ! supported_kernel; then log_failure_msg "udev requires a kernel >= 2.6.32, not started" log_end_msg 1 fi
if [ ! -e /proc/filesystems ]; then log_failure_msg "udev requires a mounted procfs, not started" log_end_msg 1 fi
if ! grep -q '[[:space:]]devtmpfs$' /proc/filesystems; then log_failure_msg "udev requires devtmpfs support, not started" log_end_msg 1 fi
if [ ! -d /sys/class/ ]; then log_failure_msg "udev requires a mounted sysfs, not started" log_end_msg 1 fi
if ! ps --no-headers --format args ax | egrep -q '^\['; then log_warning_msg "udev does not support containers, not started" exit0 fi
if [ -d /sys/class/mem/null -a ! -L /sys/class/mem/null ] || \ [ -e /sys/block -a ! -e /sys/class/block ]; then log_warning_msg "CONFIG_SYSFS_DEPRECATED must not be selected" log_warning_msg "Booting will continue in 30 seconds but many things will be broken" sleep 30 fi
# When modifying this script, do not forget that between the time that the # new /dev has been mounted and udevadm trigger has been run there will be # no /dev/null. This also means that you cannot use the "&" shell command.
case"$1" in start) if [ ! -e "/run/udev/" ]; then warn_if_interactive fi
if [ -w /sys/kernel/uevent_helper ]; then echo > /sys/kernel/uevent_helper fi
if ! mountpoint -q /dev/; then unmount_devpts mount_devtmpfs [ -d /proc/1 ] || mount -n /proc fi
make_static_nodes
# clean up parts of the database created by the initramfs udev udevadm info --cleanup-db
# set the SELinux context for devices created in the initramfs [ -x /sbin/restorecon ] && /sbin/restorecon -R /dev
log_daemon_msg "Starting $DESC""$NAME" if $DAEMON --daemon; then log_end_msg $? else log_warning_msg $? log_warning_msg "Waiting 15 seconds and trying to continue anyway" sleep 15 fi
log_action_begin_msg "Synthesizing the initial hotplug events" if udevadm trigger --action=add; then log_action_end_msg $? else log_action_end_msg $? fi
create_dev_makedev
# wait for the systemd-udevd childs to finish log_action_begin_msg "Waiting for /dev to be fully populated" if udevadm settle; then log_action_end_msg 0 else log_action_end_msg 0'timeout' fi ;;
stop) log_daemon_msg "Stopping $DESC""$NAME" if start-stop-daemon --stop --name $NAME --user root --quiet --oknodo --retry 5; then log_end_msg $? else log_end_msg $? fi ;;
restart) log_daemon_msg "Stopping $DESC""$NAME" if start-stop-daemon --stop --name $NAME --user root --quiet --oknodo --retry 5; then log_end_msg $? else log_end_msg $? || true fi
log_daemon_msg "Starting $DESC""$NAME" if $DAEMON --daemon; then log_end_msg $? else log_end_msg $? fi ;;
reload|force-reload) udevadm control --reload-rules ;;