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:
parent
d1abee44eb
commit
b9f261762f
1
debian/control
vendored
1
debian/control
vendored
@ -16,6 +16,7 @@ Build-Depends: debhelper (>= 11~),
|
|||||||
python3-psutil (>= 0.4),
|
python3-psutil (>= 0.4),
|
||||||
python3-pytest,
|
python3-pytest,
|
||||||
python3-serial,
|
python3-serial,
|
||||||
|
python3-systemd,
|
||||||
git,
|
git,
|
||||||
markdown,
|
markdown,
|
||||||
python3-daemon
|
python3-daemon
|
||||||
|
@ -43,6 +43,11 @@ from secop.errors import ConfigError
|
|||||||
from secop.lib import formatException, get_class, getGeneralConfig, mkthread
|
from secop.lib import formatException, get_class, getGeneralConfig, mkthread
|
||||||
from secop.modules import Attached
|
from secop.modules import Attached
|
||||||
|
|
||||||
|
try:
|
||||||
|
import systemd.daemon
|
||||||
|
except ImportError:
|
||||||
|
systemd = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Server:
|
class Server:
|
||||||
@ -102,6 +107,8 @@ class Server:
|
|||||||
while self._restart:
|
while self._restart:
|
||||||
self._restart = False
|
self._restart = False
|
||||||
try:
|
try:
|
||||||
|
if systemd:
|
||||||
|
systemd.daemon.notify("STATUS=initializing")
|
||||||
self._processCfg()
|
self._processCfg()
|
||||||
except Exception:
|
except Exception:
|
||||||
print(formatException(verbose=True))
|
print(formatException(verbose=True))
|
||||||
@ -112,6 +119,8 @@ class Server:
|
|||||||
for ifname, ifobj in self.interfaces.items():
|
for ifname, ifobj in self.interfaces.items():
|
||||||
self.log.debug('starting thread for interface %r' % ifname)
|
self.log.debug('starting thread for interface %r' % ifname)
|
||||||
threads.append((ifname, mkthread(ifobj.serve_forever)))
|
threads.append((ifname, mkthread(ifobj.serve_forever)))
|
||||||
|
if systemd:
|
||||||
|
systemd.daemon.notify("READY=1\nSTATUS=accepting requests")
|
||||||
for ifname, t in threads:
|
for ifname, t in threads:
|
||||||
t.join()
|
t.join()
|
||||||
self.log.debug('thread for %r died' % ifname)
|
self.log.debug('thread for %r died' % ifname)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user