From 518c42acde0f5889d0dc4b41a55a2c9356c3d6cd Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 5 Jul 2018 01:08:52 -0500 Subject: user/eudev: fix up and merge udev-init-scripts in (why was that ever separate?) --- user/eudev/udev.initd | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 user/eudev/udev.initd (limited to 'user/eudev/udev.initd') diff --git a/user/eudev/udev.initd b/user/eudev/udev.initd new file mode 100644 index 000000000..796453ee8 --- /dev/null +++ b/user/eudev/udev.initd @@ -0,0 +1,97 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +command_args="--daemon ${udev_opts}" +description="udev manages device permissions and symbolic links in /dev" +extra_started_commands="reload" +description_reload="Reload the udev rules and databases" + +depend() +{ + use modloop + need sysfs dev-mount + before checkfs fsck + keyword -lxc -systemd-nspawn -vserver + provide dev +} + +get_udevd_binary() { + local bins="/sbin/udevd /lib/systemd/systemd-udevd /usr/lib/systemd/systemd-udevd" + for f in ${bins}; do + if [ -x "$f" -a ! -L "$f" ]; then + command="$f" + fi + done + if [ -z "$command" ]; then + eerror "Unable to find udev executable." + return 1 + fi +} + +start_pre() +{ + # make sure devtmpfs is in the kernel + if ! grep -qs devtmpfs /proc/filesystems; then + eerror "CONFIG_DEVTMPFS=y is required in your kernel configuration" + eerror "for this version of udev to run successfully." + eerror "This requires immediate attention." + if ! mountinfo -q /dev; then + mount -n -t tmpfs dev /dev + busybox mdev -s + mkdir /dev/pts + fi + return 1 + fi + + # make sure /dev is a mounted devtmpfs + if ! mountinfo -q -f devtmpfs /dev; then + eerror "Udev requires /dev to be a mounted devtmpfs." + eerror "Please reconfigure your system." + return 1 + fi + + # load unix domain sockets if built as module, Bug #221253 + # and not yet loaded, Bug #363549 + if [ ! -e /proc/net/unix ]; then + if ! modprobe unix; then + eerror "Cannot load the unix domain socket module" + return 1 + fi + fi + + get_udevd_binary || return 1 + + if [ -e /proc/sys/kernel/hotplug ]; then + echo "" >/proc/sys/kernel/hotplug + fi + + if yesno "${udev_debug:-NO}"; then + command_args="${command_args} --debug 2> /run/udevdebug.log" + fi + + return 0 +} + +stop() +{ + local rc=0 + ebegin "Stopping ${name:-$RC_SVCNAME}" + udevadm control --exit + rc=$? + if [ $rc -ne 0 ]; then + eend $rc "Failed to stop $RC_SVCNAME using udevadm" + get_udevd_binary || return 1 + ebegin "Trying with start-stop-daemon" + start-stop-daemon --stop --exec ${command} + rc=$? + fi + eend $rc "Failed to stop $RC_SVCNAME" +} + +reload() +{ + ebegin "reloading udev rules and databases" + udevadm control --reload + eend $? +} -- cgit v1.2.3-70-g09d2