From 38adb8d0ac6eebbeb5e26d2095526c3ba9459d7a Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sun, 24 Nov 2013 23:04:18 +0100 Subject: Add blog posts --- articles/mounting_music_dir_before_mpd.org | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 articles/mounting_music_dir_before_mpd.org (limited to 'articles/mounting_music_dir_before_mpd.org') diff --git a/articles/mounting_music_dir_before_mpd.org b/articles/mounting_music_dir_before_mpd.org new file mode 100644 index 0000000..da9918f --- /dev/null +++ b/articles/mounting_music_dir_before_mpd.org @@ -0,0 +1,44 @@ +#+TITLE: +#+OPTIONS: toc:nil c:t +#+HTML_LINK_UP: ../blog.html + +* Mounting music dir before MPD :systemd:mpd:conf: + +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. -- cgit v1.2.3-54-g00ecf