diff options
author | Pawel Baldysiak <pawel.baldysiak@intel.com> | 2014-03-06 15:51:44 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-03-11 04:42:57 +0100 |
commit | 2167de78aab599e7a7a8d057ef04bf18527bc129 (patch) | |
tree | ca7c0c69e28031988e34ceb0d47d971599a24af5 /systemd | |
parent | Assemble: change load_devices to return most_recent 'st' value. (diff) | |
download | mdadm-2167de78aab599e7a7a8d057ef04bf18527bc129.tar.xz mdadm-2167de78aab599e7a7a8d057ef04bf18527bc129.zip |
mdmon@.service: Change type of process start-up to 'forking'.
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>
Diffstat (limited to 'systemd')
-rw-r--r-- | systemd/mdmon@.service | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/systemd/mdmon@.service b/systemd/mdmon@.service index 5520cd03..304b26e8 100644 --- a/systemd/mdmon@.service +++ b/systemd/mdmon@.service @@ -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 |