<p dir="ltr">Great, thanks!</p>
<br><div class="gmail_quote"><div dir="ltr">Lennart Poettering <<a href="mailto:lennart@poettering.net">lennart@poettering.net</a>> schrieb am Sa., 29. Apr. 2017, 19:32:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 26.04.17 11:08, Benno Fünfstück (<a href="mailto:benno.fuenfstueck@gmail.com" target="_blank">benno.fuenfstueck@gmail.com</a>) wrote:<br>
<br>
> > I have the problem that I want to run a set of services that are isolated<br>
> > from the other services. In particular, I'd like to:<br>
> ><br>
> > * share some environment variables between these services, that aren't<br>
> > available for services outside the group<br>
> > * be able to stop all the services in the group and wait for proper<br>
> > shutdown<br>
> > * (would be nice) load services for the group from a different directory<br>
> > than the default one<br>
> > * (would be nice) be able to add transient services to the group with<br>
> > systemd-run<br>
> ><br>
> > Is such a thing possible with systemd? If not, is it feasible to implement<br>
> > something like this (even if it doesn't match exactly what I want)?<br>
> ><br>
> > Regards,<br>
> > Benno<br>
> ><br>
><br>
> Just to add if that wasn't clear: I'd like to run this group for multiple<br>
> different sets of environment variables, and be able to "start" the group<br>
> for some assignment of environment variables (these variables will not<br>
> change during the lifetime of the group though)<br>
<br>
If you want multiple instantation you can use systemd's instance<br>
logic. i.e. you could have:<br>
<br>
       mygroup@.target<br>
<br>
This target unit could then have Wants= deps on your various services,<br>
always passing along the instance identifier:<br>
<br>
        [Unit]<br>
        Wants=myservice1@%i.service myservice2@%i.service<br>
<br>
Then, insce the service units you'd add a PartsOf= dep back:<br>
<br>
        [Unit]<br>
        PartOf=mygroup@%i.target<br>
<br>
And then pull in the environment file based on the instance:<br>
<br>
        [Service]<br>
        EnvironmentFile=/path/to/my/env-file-%i.conf<br>
<br>
I hope that makes sense,<br>
<br>
Lennart<br>
<br>
--<br>
Lennart Poettering, Red Hat<br>
</blockquote></div>