diff --git a/debian/control b/debian/control index 2ced792..4c43421 100644 --- a/debian/control +++ b/debian/control @@ -16,6 +16,7 @@ Build-Depends: debhelper (>= 11~), python3-psutil (>= 0.4), python3-pytest, python3-serial, + python3-systemd, git, markdown, python3-daemon diff --git a/secop/server.py b/secop/server.py index 1bf8b59..cb24c89 100644 --- a/secop/server.py +++ b/secop/server.py @@ -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)