[systemd-devel] Non-target, dependency-only unit
"Jóhann B. Guðmundsson"
johannbg at gmail.com
Mon Jan 16 09:36:31 PST 2012
On 01/16/2012 05:00 PM, Pablo Nehab Hess wrote:
> I'm trying to convert Spacewalk's init script to a systemd unit file.
>
> Spacewalk is merely a collection of dependencies; it depends on
> {httpd,tomcat6,postgresql}.service and a few others, but there's no
> proper daemon or any such thing. The original init script lives at
> '/usr/sbin/spacewalk-service' and simply performs 'start' or 'stop' or
> 'restart'/'reload' for all those dependencies in a specific order.
>
> If the only desirable action was 'start', then a target unit would be just fine.
>
> However, the administrator must be able to at the very least 'stop'
> and 'reload'/'restart' it.
>
> The solution I've been using is inserting all but the last dependency
> into 'ExecStartPre' and 'ExecStopPost' directives, but does *not* look
> correct to me.
>
> Is there any other solution I'm unaware of?
>
> Thanks for any hints.
>
Given what information you have provided then this should be somewhat in
that direction...
[Unit]
Description=Spacewalk
[Service]
Type=oneshot
ExecStart=/usr/sbin/spacewalk-service start
ExecReload=/usr/sbin/spacewalk-service reload
ExecStop=/usr/sbin/spacewalk-service stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
I have sometimes used dummy unit with requires as in but that's probably
not what you are looking for since you are calling a wrapper script...
[Unit]
Description=foo
Requires=x.service y.service z.service
[Service]
Type=oneshot
ExecStart=/usr/bin/true
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
More information about the systemd-devel
mailing list