[systemd-devel] User question: how to manage an application split up into multiple binaries The Right Way.

Reindl Harald h.reindl at thelounge.net
Wed Jun 5 08:56:10 UTC 2019



Am 05.06.19 um 10:34 schrieb Etienne Doms:
> Hi all,
> 
> We are developing an application on an embedded system which, for some
> reasons, must be split up into multiple processes. All these processes
> are linked between each other, they communicate using named pipes, and
> all of them should be considered as a single entity materializing the
> application. If one process goes down, the whole application goes
> down, this is not an issue.
> 
> We have the following requirements:
> 
> - The whole system shall be monitored by a hardware watchdog.
> - Each process shall be monitored by a software watchdog.
> - If one process aborts, all processes should be restarted.
> - If one process aborts more than x times, the whole system shall be rebooted.

in theory

* each process a own service type=notify
  https://www.freedesktop.org/software/systemd/man/sd_notify.html

* proper ordering

* Restart=on-failure

--------------------

but "if one process all processes" makes it a little hard, maybe it
would be better to have a master process like httpd or postfix which is
type=notify and forking/monitoring the other ones and keep it as one
service and if that only monitoring process fails reboot while it only
controls and restarts the workers

https://www.freedesktop.org/software/systemd/man/sd_notify.html
https://www.freedesktop.org/software/systemd/man/systemd.service.html
https://www.freedesktop.org/software/systemd/man/systemd.unit.html

these options should give you some start

Restart=
FailureAction=
StartLimitAction=
StartLimitIntervalSec=
StartLimitBurst=



More information about the systemd-devel mailing list