allow 'systemctl enable' and ensure start after local and remote fs#121
allow 'systemctl enable' and ensure start after local and remote fs#121aflyhorse wants to merge 2 commits intocea-hpc:masterfrom
Conversation
martinetd
left a comment
There was a problem hiding this comment.
Thanks for the patch! We've never really been starting robinhood at boot because our lustre isn't mounted automatically so the lack of install was not really a problem, but I guess it makes sense for sites that do.
| @@ -1,5 +1,7 @@ | |||
| [Unit] | |||
| Description=Robinhood server | |||
| After=local-fs.target remote-fs.target | |||
There was a problem hiding this comment.
Hmm, this is a tough one.
On one hand it's too broad - we'd to better with a "RequiresMountsFor" with the filesystem paths required, so filesystems we don't care about being slow or fickle don't impact robinhood startup.
On the other hand just after isn't strong enough: if the remote filesystems failed to mount, robinhood will be started anyway, but with a broad "all filesystems" requirement we don't want to stop robinhood from starting if some useless filesystem had a problem.
I don't think we can have a solution for everyone here honestly -- I guess this is "good enough" as a middle ground, with perhaps a comment saying it can be replaced in a drop-in config by RequiresMountsfor=/mnt/lustre ?
There was a problem hiding this comment.
I installed via the RPMs so normally I won't modify installed service file. I added these lines to ensure robinhood won't start before the mount and terminate itself.
I'll append a suggestion comment.
There was a problem hiding this comment.
Thanks for the comment!
Let's not suggest something as barbaric as modifying this file in place: suggest systemctl edit robinhood.service (or robinhood@smth.service) with the following content:
[Unit]
After=
After=local-fs.target
RequiresMountsFor=/path/to/scan
The first After resets previous value, the second restores local-fs which is probably needed anyway, and the last adds proper requirements for only the fs we care about.
(If I was true to myself I'd say we should make this into a systemd generator so conditons could be rewritten dynamically based on the EnvironmentFiles, but that would be overdoing it...)
Current service file missing [Install] section, causing:
Also, add dependency to ensure robinhood start after local and remote fs