[Buildroot] package/quagga: Add systemd service

Nathaniel Roach nroach44 at gmail.com
Fri May 13 13:48:20 UTC 2016


There's two things wrong with this that I've spotted:

Firstly, do we want to run any binary under /sbin? Do we change the 
output folder of quagga's ./configure? Do we make a folder with symlinks?

Secondly, I'll change Requires=quagga at zebra.service to Wants= as we 
allow building quagga without zebra, and the other dameons can still 
talk on the network without it.

Thanks,

Nathaniel
On 13/05/16 20:19, Nathaniel Roach wrote:
> Create a template unit, as there are a few different daemons
> available, but all of them accept/use the same basic runtime arguments.
>
> Allow use of a /etc/default/ file to customise each daemon.
>
> (Some daemons, like the zebra backend, have custom flags that cause
> other daemons to exit when used)
>
> The zebra backend is required to modify routes on the host system,
> so we require it. Systemd handles this just fine, and a circular
> dependency is avoided
>
> Signed-off-by: Nathaniel Roach <nroach44 at gmail.com>
> ---
>   package/quagga/quagga.service | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
>   create mode 100644 package/quagga/quagga.service
>
> diff --git a/package/quagga/quagga.service b/package/quagga/quagga.service
> new file mode 100644
> index 0000000..e7ab584
> --- /dev/null
> +++ b/package/quagga/quagga.service
> @@ -0,0 +1,19 @@
> +[Unit]
> +Description=Quagga %i routing daemon
> +PartOf=quagga.service
> +ReloadPropagatedFrom=quagga.service
> +Requires=quagga at zebra.service
> +
> +[Service]
> +PrivateTmp=true
> +KillMode=mixed
> +Type=forking
> +EnvironmentFile=/etc/default/quagga-%i.conf
> +ExecStart=/sbin/%i --daemon $OPTS -f /etc/quagga/%i.conf -i /var/run/quagga/%i.pid
> +PIDFile=/var/run/quagga/%i.pid
> +KillSignal=SIGINT
> +Restart=on-failure
> +RestartSec=1
> +
> +[Install]
> +WantedBy=multi-user.target



More information about the buildroot mailing list