Bug#815834: mdadm: with systemd as PID 1, no clean way to restart the mdadm monitor
Francesco Poli (wintermute)
invernomuto at paranoici.org
Wed Feb 24 21:28:37 UTC 2016
Package: mdadm
Version: 3.3.4-1.1+b1
Severity: normal
Hello!
The issue I am reporting may be related to bug #796624, but it's not
the same.
After upgrading packages (especially libraries), I routinely use
"checkrestart" (from package debian-goodies) to see which processes
need to be restarted.
I noticed that, whenever the mdadm monitor process needs to be restarted
(for instance, after a libc6 upgrade), there seems to be no clean way to
actually restart it, if using systemd as PID 1.
Suppose we have to restart the mdadm monitor process:
# checkrestart
[...]
service mdadm-raid restart
service mdadm-waitidle restart
service mdadm restart
[...]
# ps aux | grep mdadm | head -n 1
root 359 0.0 0.0 13620 2508 ? Ss 23:18 0:00 /sbin/mdadm --monitor --scan
Which service command should I use?
# service mdadm restart
Failed to restart mdadm.service: Unit mdadm.service is masked.
# service mdadm-waitidle restart
Failed to restart mdadm-waitidle.service: Unit mdadm-waitidle.service is masked.
# service mdadm-raid restart
The first two do nothing, since they are masked.
The last one seems to be successful, but:
# checkrestart
[...]
service mdadm-raid restart
service mdadm-waitidle restart
service mdadm restart
[...]
# ps aux | grep mdadm | head -n 1
root 359 0.0 0.0 13620 2556 ? Ss 23:18 0:00 /sbin/mdadm --monitor --scan
Nothing has changed! Please note that the mdadm monitor process PID is
the same as before: it has not been restarted.
It seems that, with systemd as PID 1, the available services are
unable to restart the running mdadm monitor...
Please note that, with sysvinit as PID 1, it's possible to restart
the mdadm monitor via the appropriate service.
Please provide a clean way to restart the mdadm monitor process:
I could kill it and then start it again by hand, but it doesn't feel
especially safe to do that...
It seems to me that the init script which is able to restart the
mdadm monitor process is /etc/init.d/mdadm .
I wonder why there's no corresponding service file for systemd and
why the service is masked instead.
Wait, there's /lib/systemd/system/mdmonitor.service : is
# systemctl restart mdmonitor.service
or
# service mdmonitor restart
the clean way I am looking for?
Unfortunately, checkrestart does not suggest it.
Please clarify, thanks for your time!
Bye.
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (800, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.3.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages mdadm depends on:
ii debconf [debconf-2.0] 1.5.58
ii initscripts 2.88dsf-59.3
ii libc6 2.21-9
ii lsb-base 9.20160110
ii udev 228-6
Versions of packages mdadm recommends:
ii exim4-daemon-light [mail-transport-agent] 4.86-7+b2
ii kmod 22-1
mdadm suggests no packages.
-- debconf information:
mdadm/initrdstart_msg_errblock:
mdadm/initrdstart_msg_errmd:
mdadm/mail_to: root
* mdadm/initrdstart: all
mdadm/initrdstart_notinconf: false
mdadm/initrdstart_msg_errconf:
mdadm/initrdstart_msg_intro:
mdadm/autocheck: true
mdadm/start_daemon: true
mdadm/initrdstart_msg_errexist:
More information about the pkg-mdadm-devel
mailing list