Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > linux.debian.kernel > #92485
| 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.
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
Bug#1136497: dracut uses pidof but does not depend on procps Gioele Barabucci <gioele@debian.org> - 2026-05-14 01:30 +0200
csiph-web