title: filesystem are unmounted before the services are stopped in systemd
body: <p>I am debugging systemd shutdown issue. Here the problem is some of the filesystems are unmounted while the services are still running. </p>
  
  <p>In general, we want systemd to shutdown the services first and then umount the mount points.</p>
  
  <p>But here, umount and stopping the services are happening in parallel. (See below). Also unmounting of root filesystem at first. </p>
  
  <pre><code>#        Unmounting /root...
           Unmounting /var/lib/ntp...
           Unmounting /etc/cron.d/local...
  [  OK  ] Stopped Apply Kernel Variables.
           Unmounting /proc/fs/nfsd...
           Unmounting /tmp/rshell/trace...
           Stopping Availability of block devices...
           Unmounting /etc/timestamp...
           Unmounting /var/lib/nfs/rpc_pipefs...
           Unmounting /etc/sysconfig/clock...
  [  OK  ] Removed slice system-getty.slice.
  [  OK  ] Stopped Load Kernel Modules.
           Unmounting /etc/ssh/ssh_external_host_rsa_key...
  [  OK  ] Stopped Create Static Device Nodes in /dev.
           Unmounting /mnt/log...
  [  OK  ] Stopped Resets System Activity Logs.
           Stopping Crond Periodic Command Scheduler...
  [  OK  ] Stopped Mount Restricted SFTP Jail Folders.
  [  OK  ] Stopped Mount Restricted Shell Folders.
           Stopping Runs processtat...
           Unmounting /etc/ssh/ssh_external_host_ecdsa_key.pub...
  [  OK  ] Stopped target RPC Port Mapper.
           Unmounting /boot...
           Unmounting /srv...
           Stopping Initializes network console logging...
  [  OK  ] Stopped Crond Periodic Command Scheduler.
  [FAILED] Failed unmounting /root.
  [  OK  ] Unmounted /var/lib/ntp.
  [  OK  ] Unmounted /etc/cron.d/local.
  **[FAILED] Failed unmounting /mnt/sysimg.**
  [  OK  ] Unmounted /etc/sysconfig/clock.
  [  OK  ] Unmounted /usr/share/cracklib.
  **[FAILED] Failed unmounting /run/netns.**
  [  OK  ] Unmounted /tftpboot/state.
  **[FAILED] Failed unmounting /tmp/ldap.**
  </code></pre>
  
  <p>How do we synchronise this in systemd?</p>
  
  <p>In general, systemd-reboot.service depends on final.target, shutdown.target and umount.target. </p>
  
  <p>Here looks like, umount.target and shutdown.target are executed in parallel. </p>
  
  <pre><code># cat /usr/lib/systemd/system/systemd-reboot.service 
  #  This file is part of systemd.
  #
  #  systemd is free software; you can redistribute it and/or modify it
  #  under the terms of the GNU Lesser General Public License as published by
  #  the Free Software Foundation; either version 2.1 of the License, or
  #  (at your option) any later version.
  
  [Unit]
  Description=Reboot
  Documentation=man:systemd-halt.service(8)
  DefaultDependencies=no
  Requires=shutdown.target umount.target final.target
  After=shutdown.target umount.target final.target
  
  [Service]
  Type=oneshot
  ExecStart=/usr/bin/systemctl --force reboot
  </code></pre>
  
  <p>I tried, umount.target being dependent on shutdown.target but that did not help. Always these umount and service shutdown seems to be happening in parallel. If my understanding is wrong please correct. </p>
  
  <p>Please give some tips/suggestions to properly shutdown the services first and then unmount the mount points. </p>