[erlang-questions] erlang and systemd: how to combine without nif
Max Lapshin
max.lapshin@REDACTED
Wed Jul 25 12:38:51 CEST 2018
While migrating to systemd from old good SysV init, I've found that it is a
very good idea to speak to this daemon and tell him that my software is
alive and ready.
systemd authors offer library for this (and I suppose that they want to see
these calls in POSIX and all other OS).
Petr Lemenkov together with other commiters have written wrapper around
this C library: https://github.com/systemd/erlang-sd_notify
I was completely against this idea, because I do not want to take nif
around library that makes a very simple call, so I've decided to write a
code that relies on protocol in this systemd library:
https://gist.github.com/maxlapshin/01773f0fca706acdcb4acb77d91d78bb
Just drop this file to your source, add systemd as a permanent worker for
keepalive to work and don't forget to call systemd:ready to commit start.
Service file may look like this:
[Unit]
Description=Retroview
After=network-online.target
Wants=network-online.target
[Service]
Environment=HOME=/var/lib/retroview
Environment=PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
Environment=LANG=C
Environment=PROCNAME=retroview
Type=notify
User=root
Group=root
LimitNOFILE=102400
ExecStartPre=/bin/mkdir -p /var/lib/retroview
ExecStartPre=/bin/mkdir -p /var/log/retroview
ExecStart=/usr/bin/erl -p /opt/retroview/ebin -noinput -name
retroview@REDACTED -s retroview
Restart=on-failure
TimeoutStartSec=300s
WatchdogSec=120
WorkingDirectory=/opt/retroview
NotifyAccess=main
[Install]
WantedBy=multi-user.target
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20180725/186812cb/attachment.htm>
More information about the erlang-questions
mailing list