Use 'service' if installed
authorGuido Günther <agx@sigxcpu.org>
Tue, 23 Feb 2010 17:55:56 +0000 (18:55 +0100)
committerRichard Jones <rjones@redhat.com>
Wed, 24 Feb 2010 15:30:41 +0000 (15:30 +0000)
Hi,
attached patch should make:

http://git.debian.org/?p=pkg-libvirt/libguestfs.git;a=blob;f=debian/patches/0003-appliance-Use-service-udev-start-instead-of-running-.patch;h=c9e6b8489807d4fb1247cb6a8b6f9799bad2a09e;hb=d3a21b5b6850fc3c6e7903d0f5cafa3eb4197d49
http://git.debian.org/?p=pkg-libvirt/libguestfs.git;a=blob;f=debian/patches/0004-Ubuntu-Prefer-starting-udev-by-hand-instead-of-using.patch;h=64b65a971b186e6ab1c9351e94b46d6f5aa242e0;hb=d3a21b5b6850fc3c6e7903d0f5cafa3eb4197d49

superflous. If there's an init script it uses 'service' or falls back to
calling the init script directly if it isn't there, otherwise it starts
udev directly. Tested on Debian only so far. The patch is based on
Rich's above two patches.
Cheers,
 -- Guido

From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Tue, 23 Feb 2010 18:49:34 +0100
Subject: [PATCH] Check for service and use it if it's there

Based on Richard's two patches for the Ubuntu build.

appliance/init

index b741a49..84ee96e 100755 (executable)
@@ -8,9 +8,18 @@ mount -t proc /proc /proc
 mount -t sysfs /sys /sys
 
 if [ -x /etc/init.d/udev ]; then
-  /etc/init.d/udev start
+  if type service >/dev/null 2>&1; then
+     service udev start
+  else
+     /etc/init.d/udev start
+  fi
 elif [ -x /sbin/start_udev ] && /sbin/start_udev; then
   :
+elif [ -x /sbin/udevd ]; then
+  echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
+  /sbin/udevd --daemon
+  /sbin/udevadm trigger
+  /sbin/udevadm settle --timeout=10
 else
   echo No udev, creating /dev manually
   mount -t tmpfs none /dev