summaryrefslogtreecommitdiffstats
path: root/mounting-music-dir-before-mpd.post
diff options
context:
space:
mode:
Diffstat (limited to 'mounting-music-dir-before-mpd.post')
-rw-r--r--mounting-music-dir-before-mpd.post39
1 files changed, 39 insertions, 0 deletions
diff --git a/mounting-music-dir-before-mpd.post b/mounting-music-dir-before-mpd.post
new file mode 100644
index 0000000..789dda4
--- /dev/null
+++ b/mounting-music-dir-before-mpd.post
@@ -0,0 +1,39 @@
+;;;;;
+title: Mounting music dir before MPD
+tags: systemd, mpd, config
+date: 2013-11-24 14:03
+format: md
+;;;;;
+
+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:
+
+ ExecStartPre=/usr/bin/mount /mnt/music
+
+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:
+
+ ExecStartPre=-/usr/bin/mount /mnt/music
+
+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:
+
+ ExecStartPre=/usr/bin/mount /mnt/music
+ ExecStartPre=-/usr/bin/mount /mnt/music2
+
+This would fail if `/mnt/music` doesn't mount, but would continue just
+fine if `/mnt/music` did and `/mnt/music2` didn't.