]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mdmon@.service: Change type of process start-up to 'forking'.
authorPawel Baldysiak <pawel.baldysiak@intel.com>
Thu, 6 Mar 2014 14:51:44 +0000 (15:51 +0100)
committerNeilBrown <neilb@suse.de>
Tue, 11 Mar 2014 03:42:57 +0000 (14:42 +1100)
Mdadm does not wait enough time when mdmon is started by systemd.
It causes various problems with behaviour of a RAID volume with external metadata.
For example: mdmon does not update a value of checkpoint during migration
and second RAID5 volume is read-only after reboot done during
container reshape (both problems occur with IMSM matadata).
If a type of process start-up is changed to 'forking', systemctl will
wait until mdmon (parent) process exits after calling fork.
This way mdmon will always be fully initialized after start_mdmon
and these problems will not occur.
In this case it is recommended to add a path to PIDFile, so that systemd
does not have to guess a PID of the mdmon process.

Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
Reviewed-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-by: Lukasz Dorau <lukasz.dorau@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
systemd/mdmon@.service

index 5520cd03137c3938b5084ad665abc7cb0289f730..304b26e890c704a211cab889438ded98b0564ff9 100644 (file)
@@ -14,5 +14,7 @@ Before=initrd-switch-root.target
 # mdmon should never complain due to lack of a platform,
 # that is mdadm's job if at all.
 Environment=IMSM_NO_PLATFORM=1
-ExecStart=/sbin/mdmon --foreground %I
+ExecStart=/sbin/mdmon %I
+Type=forking
+PIDFile=/run/mdadm/%I.pid
 KillMode=none