basic systemd integration

Change-Id: I8525971aea417f6744831acf3effc4436c4e9883
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22934
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
Enrico Faulhaber 2020-04-09 15:44:16 +02:00
parent d1abee44eb
commit b9f261762f
2 changed files with 10 additions and 0 deletions

1
debian/control vendored
View File

@ -16,6 +16,7 @@ Build-Depends: debhelper (>= 11~),
python3-psutil (>= 0.4),
python3-pytest,
python3-serial,
python3-systemd,
git,
markdown,
python3-daemon

View File

@ -43,6 +43,11 @@ from secop.errors import ConfigError
from secop.lib import formatException, get_class, getGeneralConfig, mkthread
from secop.modules import Attached
try:
import systemd.daemon
except ImportError:
systemd = None
class Server:
@ -102,6 +107,8 @@ class Server:
while self._restart:
self._restart = False
try:
if systemd:
systemd.daemon.notify("STATUS=initializing")
self._processCfg()
except Exception:
print(formatException(verbose=True))
@ -112,6 +119,8 @@ class Server:
for ifname, ifobj in self.interfaces.items():
self.log.debug('starting thread for interface %r' % ifname)
threads.append((ifname, mkthread(ifobj.serve_forever)))
if systemd:
systemd.daemon.notify("READY=1\nSTATUS=accepting requests")
for ifname, t in threads:
t.join()
self.log.debug('thread for %r died' % ifname)