base: provide pidof() shell function
authorHarald Hoyer <harald@redhat.com>
Tue, 23 Jul 2013 10:33:45 +0000 (12:33 +0200)
committerHarald Hoyer <harald@redhat.com>
Tue, 23 Jul 2013 10:56:20 +0000 (12:56 +0200)
modules.d/99base/dracut-lib.sh
modules.d/99base/module-setup.sh

index 8eeebf3..2361ee3 100755 (executable)
@@ -927,6 +927,31 @@ wait_for_loginit()
     rm -f -- /run/initramfs/loginit.pipe /run/initramfs/loginit.pid
 }
 
+# pidof version for root
+if ! command -v pidof >/dev/null 2>/dev/null; then
+    pidof() {
+        local _cmd
+        local _exe
+        local _rl
+        local i
+        _cmd="$1"
+        [ -z "$_cmd" ] && return 1
+        _exe=$(type -P "$1")
+        for i in /proc/*/exe; do
+            [ -e "$i" ] || return 1
+            if [ -n "$_exe" ]; then
+                [ "$i" -ef "$_cmd" ] || continue
+            else
+                _rl=$(readlink -f "$i");
+                [ "${_rl%/$_cmd}" != "$_rl" ] || continue
+            fi
+            i=${i%/exe}
+            echo ${i##/proc/}
+        done
+        return 0
+    }
+fi
+
 _emergency_shell()
 {
     local _name="$1"
index 86bf3b4..b8f1ef3 100755 (executable)
@@ -13,7 +13,7 @@ depends() {
 
 install() {
     local _d
-    dracut_install mount mknod mkdir pidof sleep chroot \
+    dracut_install mount mknod mkdir sleep chroot \
         sed ls flock cp mv dmesg rm ln rmmod mkfifo umount readlink setsid
     inst $(command -v modprobe) /sbin/modprobe