From f0197af2b7621da2f0b3debab8c76d72021ef448 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Fri, 30 Jun 2023 13:04:26 +0200 Subject: [PATCH] mxraid, mxmount: Start before basic.target There is a race when other services want to use local amd paths. All services order behind basic.target per default, so move mxraid and mxmount before it. Also make mxraid.startup.service and mxraid.shutdown.service into one but temporarily keep mxraid.shutdown.service for running systems. Use systemd-udev-settle.service instead of our udev-settled.target, which can be removed in a later commit. --- install.sh | 2 +- mxmount/mxmount.service | 5 ++++- mxraid/mxraid.service | 16 ++++++++++++++++ mxraid/mxraid.startup.service | 7 ------- 4 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 mxraid/mxraid.service delete mode 100644 mxraid/mxraid.startup.service diff --git a/install.sh b/install.sh index 01c2993..4db71ef 100755 --- a/install.sh +++ b/install.sh @@ -145,7 +145,7 @@ install_exec pkgadmin/pkgadmin "$DESTDIR$usr_sbindir/p install_cron pkgadmin/crond-pkgadmin-update "$DESTDIR$crond_dir/pkgadmin-update" install_exec mxraid/mxraid "$DESTDIR$usr_sbindir/mxraid" install_exec mxraid/mxraid_assemble "$DESTDIR$usr_sbindir/mxraid_assemble" -install_data mxraid/mxraid.startup.service "$DESTDIR$systemdunitdir/mxraid.startup.service" +install_data mxraid/mxraid.service "$DESTDIR$systemdunitdir/mxraid.service" install_data mxraid/mxraid.shutdown.service "$DESTDIR$systemdunitdir/mxraid.shutdown.service" install_exec mxraid/mdcheck.safe "$DESTDIR$usr_bindir/mdcheck.safe" install_cron mxraid/crond-mdcheck "$DESTDIR$crond_dir/mdcheck" diff --git a/mxmount/mxmount.service b/mxmount/mxmount.service index e9fa10b..b32ba9d 100644 --- a/mxmount/mxmount.service +++ b/mxmount/mxmount.service @@ -1,6 +1,9 @@ [Unit] -After=mxraid.startup.service +DefaultDependencies=no ConditionPathExists=/etc/mxmounts +Before=local-fs.target +After=systemd-udev-settle.service +Wants=systemd-udev-settle.service [Service] Type=oneshot diff --git a/mxraid/mxraid.service b/mxraid/mxraid.service new file mode 100644 index 0000000..6858263 --- /dev/null +++ b/mxraid/mxraid.service @@ -0,0 +1,16 @@ +[Unit] +DefaultDependencies=no +After=systemd-udev-settle.service +Wants=systemd-udev-settle.service +Before=mxmount.service +Conflicts=shutdown.target +Before=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/sbin/mxraid start +ExecStop=/usr/sbin/mxraid stop + +[Install] +WantedBy=local-fs.target diff --git a/mxraid/mxraid.startup.service b/mxraid/mxraid.startup.service deleted file mode 100644 index 5971bc0..0000000 --- a/mxraid/mxraid.startup.service +++ /dev/null @@ -1,7 +0,0 @@ -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/sbin/mxraid start - -[Install] -WantedBy=local-fs.target