On Tue, 21.07.15 13:43, Marc Haber (mh+systemd-de...@zugschlus.de) wrote: > Hi, > > I am trying to systemd'ize a daemon which is useful to be run in two > instances. It is usually the case that both instances need to be > started and stopped simultaneously, and the local admin would want a > _single_ command to start and stop both instances. Therefore, an > "umbrella" is needed. > > As a beginner, I have written: > > nifty.target: > [Unit] > Description=nifty Server (all protocols) > After=network.target
Unrelated to the actual topic of this thread: this line above usually doesn't do what people assume it does: It does not start the daemon after the network is up -- which is what most folks might think --, that's what network-online.target is for. Also, most daemons actually don't need the network to be up, and it is bad style to make daemons wait for external events such as DHCP events anyway. Hence, don't use this. The primary effect of ordering something after network.target is actually at shut down, since it ensures that the service is stopped before the network is turned off.) It is usually a good to remove such lines, unless you really really know you need it. In this case the target should definitely not list this, if at all the services should, but probably not even they. > This works as designed. Unfortunately, my Distribution's build tools > don't handle package-provided targets too well, and I feel that using > a target here is kind of wrong anyway. Going for a target for this sounds like the right choice, and if your distro cannot support that nicely, it really should be improved to support it. > Can I write my nifty.target as a service? I have seen in this case > nifty.service files with Exec=/bin/true to basically create a no-op > service, but that's ugly. That's a hack. A target is for grouping things, they basically are services without processes attached to them. You really should use targets for this, and not misuse services. > If I move my service to a nifty@.service, how would I start two > instances from a single shell command? You can also group instances with a target unit nicely. But the way to group things is via target units, nothing else. > How would one handle this situation in the clear, recommended way? The way you already did it! Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel