#+TITLE: #+STARTUP: showall * Mounting music dir before MPD :systemd:mpd:config: :PROPERTIES: :PUBDATE: <2013-11-24 Sun 14:03> :END: Systemd allows you to specify a program to run before running the main daemon (or program) with =ExecStartPre=. This can, for instance, be used to run a mount command before starting ~mpd~. By adding under the =[Service]= heading: #+BEGIN_SRC conf-unix ExecStartPre=/usr/bin/mount /mnt/music #+END_SRC Now I have already setup my ~fstab~ to know what to mount on ~/mnt/music~, but of course that shouldn't be necessary. According to the ~systemd.service(5)~ man page it uses the same syntax as =ExecStart=, which tells us that one must use absolute file names since no shell is used to start them. This also has the effect of stopping the =ExecStart= part from the ~.service~ from being executed if the =ExecStartPre= doesn't finish successfully. Which works out great in my case as I don't want to start ~mpd~ if my music directory didn't mount. If you want to ignore the exit status of (one of) the =ExecStartPre= commands you can prefix it with a ~-~, for example: #+BEGIN_SRC conf-unix ExecStartPre=-/usr/bin/mount /mnt/music #+END_SRC Which would continue running the =ExecStart= even if mounting failed. Also know that there can be multiple =ExecStartPre= options and they will be executed serially, so for example: #+BEGIN_SRC conf-unix ExecStartPre=/usr/bin/mount /mnt/music ExecStartPre=-/usr/bin/mount /mnt/music2 #+END_SRC This would fail if ~/mnt/music~ doesn't mount, but would continue just fine if ~/mnt/music~ did and ~/mnt/music2~ didn't.