[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