Message ID | 1463141985-23802-1-git-send-email-nroach44@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
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@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@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@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
Hello, On Fri, 13 May 2016 21:48:20 +0800, Nathaniel Roach wrote: > 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? Why wouldn't we want to run a binary from /sbin? What's the problem with that? Moreover, keep in mind that when systemd is used, /usr/sbin and /sbin are the same thing. > Secondly, I'll change Requires=quagga@zebra.service to Wants= as we > allow building quagga without zebra, and the other dameons can still > talk on the network without it. This is too systemd specific for my knowledge, so I'll trust what you submit. Since you said yourself that you will send an updated version with additional fixes, I've marked this one as Changes Requested in patchwork. Thanks, Thomas
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@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
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@gmail.com> --- package/quagga/quagga.service | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 package/quagga/quagga.service