Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > linux.debian.kernel > #92485

Bug#1136497: dracut uses pidof but does not depend on procps

From Gioele Barabucci <gioele@debian.org>
Newsgroups linux.debian.kernel, linux.debian.bugs.dist
Subject Bug#1136497: dracut uses pidof but does not depend on procps
Date 2026-05-14 01:30 +0200
Message-ID <MUrbA-4WqP-39@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Cross-posted to 2 groups.

Show all headers | View raw


Source: dracut
Version: 111-2
Usertags: pidof-without-procps

Dear maintainer(s) of dracut,

it appears that dracut uses `pidof` in its testsuite, or that
at least one of its binary packages uses `pidof` at runtime.
Historically, `pidof` was provided by the Essential package
`sysvinit-tools`, making an explicit dependency unnecessary. However
`pidof` will soon be moved to `procps` and will no longer be part of
the Essential set.

Please add an explicit dependency on `procps`:

* via the `Depends:` field of all binary packages of dracut
  that use `pidof` at runtime;
* via the `Build-Depends:` field of dracut, if `pidof` is
  used in tests run at build-time;
* via the `Depends:` field of `debian/control/tests`, if `pidof` is
  used in autopkgtests.

To prevent any disruption for users of dracut, please add
this dependency now, before `pidof` is moved from `sysvinit-utils` to
`procps`. Alternatively, you could remove all uses of `pidof`.

It is believed that dracut uses `pidof` due to the following
code snippets:

```
path: dracut_110-4/test/TEST-72-NBD/server-init.sh
dnsmasq
echo "Serving NBD disks"
while pidof nbd-server && pidof dnsmasq; do
    echo > /dev/watchdog
    sleep 1


path: dracut_110-4/modules.d/74nfs/nfs-start-rpc.sh
# filesystem without talking to it. NFSv4 does locks internally,
# rpc.lockd isn't needed
command -v rpc.statd > /dev/null && [ -z "$(pidof rpc.statd)" ] && rpc.statd
command -v rpc.idmapd > /dev/null && [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd


path: dracut_110-4/modules.d/74nfs/nfs-start-rpc.sh
# Start rpcbind
# FIXME occasionally saw 'rpcbind: fork failed: No such device' -- why?
command -v portmap > /dev/null && [ -z "$(pidof portmap)" ] && portmap
if command -v rpcbind > /dev/null && [ -z "$(pidof rpcbind)" ]; then
    mkdir -p /run/rpcbind


path: dracut_110-4/test/TEST-70-ISCSI/server-init.sh
# Wait forever for the VM to die
echo "Serving iSCSI"
while pidof tgtd > /dev/null; do
    : > /dev/watchdog
    sleep 1


path: dracut_110-4/test/TEST-71-ISCSI-MULTI/test.sh
        -a "$USE_NETWORK iscsi" \
        -d "iscsi_tcp crc32c ipv6 af_packet" \
        -I "ip grep sleep setsid chmod modprobe pidof tgtd tgtadm" \
        --install-optional "/etc/netconfig dnsmasq /etc/group /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services" \
        -i "./dnsmasq.conf" "/etc/dnsmasq.conf" \


path: dracut_110-4/modules.d/45net-lib/net-lib.sh
    local IFACES="" iface_id="" rv=1
    [ -e "/tmp/net.ifaces" ] && read -r IFACES < /tmp/net.ifaces
    if { pidof udevd || pidof systemd-udevd; } > /dev/null; then
        for iface_id in $IFACES; do
            printf "%s\n" "$(iface_name "$iface_id")"


path: dracut_110-4/test/TEST-70-ISCSI/test.sh
        -a "$USE_NETWORK" \
        -d "iscsi_tcp crc32c ipv6" \
        -I "modprobe chmod ip setsid pidof tgtd tgtadm /etc/passwd" \
        --install-optional "/etc/netconfig dnsmasq /etc/group /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services" \
        -i "./dnsmasq.conf" "/etc/dnsmasq.conf" \


path: dracut_110-4/test/TEST-72-NBD/test.sh
        --add-confdir test-root \
        -a "$USE_NETWORK" \
        -I "ip grep sleep nbd-server chmod modprobe pidof" \
        --install-optional "/etc/netconfig dnsmasq /etc/group /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services" \
        -i /tmp/config /etc/nbd-server/config \


path: dracut_110-4/modules.d/80base/dracut-lib.sh
}
# pidof version for root
if ! command -v pidof > /dev/null; then
    pidof() {


path: dracut_110-4/modules.d/80base/dracut-lib.sh
# pidof version for root
if ! command -v pidof > /dev/null; then
    pidof() {
        debug_off


path: dracut_110-4/modules.d/80base/dracut-lib.sh
# pidof version for root
if ! command -v pidof > /dev/null; then
    pidof() {
        debug_off
        local _cmd


path: dracut_110-4/test/TEST-60-NFS/server-init.sh
rpc.mountd
: > /dev/watchdog
command -v rpc.idmapd > /dev/null && [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd
: > /dev/watchdog
exportfs -r


path: dracut_110-4/modules.d/74nfs/nfsroot-cleanup.sh
[ -z "$rpcpipefspath" ] && rpcpipefspath=var/lib/nfs/rpc_pipefs
pid=$(pidof rpc.statd)
[ -n "$pid" ] && kill "$pid"


path: dracut_110-4/modules.d/74nfs/nfsroot-cleanup.sh
[ -n "$pid" ] && kill "$pid"
pid=$(pidof rpc.idmapd)
[ -n "$pid" ] && kill "$pid"


path: dracut_110-4/modules.d/74nfs/nfsroot-cleanup.sh
[ -n "$pid" ] && kill "$pid"
pid=$(pidof rpcbind)
[ -n "$pid" ] && kill "$pid"


path: dracut_110-4/test/TEST-71-ISCSI-MULTI/server-init.sh
# Wait forever for the VM to die
echo "Serving iSCSI"
while pidof tgtd > /dev/null; do
    : > /dev/watchdog
    sleep 1


path: dracut_110-4/debian/patches/test-switch-from-isc-dhcp-server-to-dnsmasq.patch
         --add-drivers "nfsd sunrpc lockd" \
-        -I "exportfs pidof rpc.nfsd rpc.mountd dhcpd" \
+        -I "exportfs pidof rpc.nfsd rpc.mountd dnsmasq tcpdump" \
         --install-optional "/etc/netconfig /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services rpc.idmapd /etc/idmapd.conf" \
-        -i "./dhcpd.conf" "/etc/dhcpd.conf" \


path: dracut_110-4/debian/patches/test-switch-from-isc-dhcp-server-to-dnsmasq.patch
         --add-confdir test-root \
         -a "$USE_NETWORK" \
         -I "ip grep sleep nbd-server chmod modprobe pidof" \
-        --install-optional "/etc/netconfig dhcpd /etc/group /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services" \
+        --install-optional "/etc/netconfig dnsmasq /etc/group /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services" \


path: dracut_110-4/debian/patches/test-switch-from-isc-dhcp-server-to-dnsmasq.patch
+dnsmasq
 echo "Serving NBD disks"
-while pidof nbd-server && pidof dhcpd; do
+while pidof nbd-server && pidof dnsmasq; do
     echo > /dev/watchdog


path: dracut_110-4/debian/patches/test-switch-from-isc-dhcp-server-to-dnsmasq.patch
 echo "Serving NBD disks"
-while pidof nbd-server && pidof dhcpd; do
+while pidof nbd-server && pidof dnsmasq; do
     echo > /dev/watchdog
     sleep 1


path: dracut_110-4/modules.d/70multipath/multipathd-stop.sh
    fi
    if pidof multipathd > /dev/null 2>&1; then
        pkill -9 multipathd > /dev/null 2>&1
    fi


path: dracut_110-4/modules.d/70multipath/multipathd-stop.sh
    pkill multipathd > /dev/null 2>&1
    if pidof multipathd > /dev/null 2>&1; then
        sleep 0.2
    fi


path: dracut_110-4/modules.d/70multipath/multipathd-stop.sh
#!/bin/sh
command -v pidof > /dev/null || . /lib/dracut-lib.sh
if [ -e /etc/multipath.conf ]; then


path: dracut_110-4/test/TEST-60-NFS/test.sh
        -a "bash $USE_NETWORK nfs" \
        --add-drivers "nfsd sunrpc lockd" \
        -I "exportfs pidof rpc.nfsd rpc.mountd dnsmasq tcpdump" \
        --install-optional "/etc/netconfig /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/services /usr/etc/nsswitch.conf /usr/etc/rpc /usr/etc/protocols /usr/etc/services rpc.idmapd /etc/idmapd.conf" \
        -f "$TESTDIR"/initramfs.root
```

Feel free to close this issue if this is a false positive (for example
if this code is in an unreachable code path).

Regards,

-- 
Gioele Barabucci

Back to linux.debian.kernel | Previous | Next | Find similar


Thread

Bug#1136497: dracut uses pidof but does not depend on procps Gioele Barabucci <gioele@debian.org> - 2026-05-14 01:30 +0200

csiph-web