From b52a8da86b445bc9cf060c27d4f6af5c92d3f7f1 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 22 Oct 2023 23:11:49 +0100 Subject: [PATCH] Switch to supervisor for process control --- bridge_master.py | 3 +++ docker-configs/Dockerfile-ci | 3 ++- docker-configs/entrypoint-proxy | 2 +- docker-configs/supervisord.conf | 22 ++++++++++++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 docker-configs/supervisord.conf diff --git a/bridge_master.py b/bridge_master.py index e8fb2a6..d3ce7a6 100644 --- a/bridge_master.py +++ b/bridge_master.py @@ -2919,6 +2919,9 @@ if __name__ == '__main__': logger.warning('(GLOBAL) Invalid language in ANNOUNCEMENT_LANGUAGE, skipping system %s',system) continue systems[system] = routerHBP(system, CONFIG, report_server) + if (CONFIG['SYSTEMS'][system]['MODE'] == 'PEER' and system != 'ECHO') or CONFIG['SYSTEMS'][system]['MODE'] == 'XLXPEER': + logger.warning('(GLOBAL) PEER and XLXPEER connections only allowed in bridge mode, skipping system %s',system) + continue listeningPorts[system] = reactor.listenUDP(CONFIG['SYSTEMS'][system]['PORT'], systems[system], interface=CONFIG['SYSTEMS'][system]['IP']) logger.debug('(GLOBAL) %s instance created: %s, %s', CONFIG['SYSTEMS'][system]['MODE'], system, systems[system]) diff --git a/docker-configs/Dockerfile-ci b/docker-configs/Dockerfile-ci index d045e63..c70954f 100644 --- a/docker-configs/Dockerfile-ci +++ b/docker-configs/Dockerfile-ci @@ -25,7 +25,7 @@ COPY . /opt/freedmr RUN addgroup -g 54000 freedmr && \ adduser -D -u 54000 -G freedmr freedmr && \ apk update && \ - apk add git gcc musl-dev && \ + apk add git gcc musl-dev supervisor && \ apk add --no-cache tini && \ cd /opt && \ cd /opt/freedmr && \ @@ -37,6 +37,7 @@ RUN addgroup -g 54000 freedmr && \ chown -R freedmr:freedmr /run/priv_control COPY docker-configs/entrypoint-proxy /entrypoint +COPY docker-configs/supervisord.conf /etc/supervisor/conf.d/supervisord.conf USER freedmr diff --git a/docker-configs/entrypoint-proxy b/docker-configs/entrypoint-proxy index 759963e..daefdb6 100755 --- a/docker-configs/entrypoint-proxy +++ b/docker-configs/entrypoint-proxy @@ -22,7 +22,7 @@ cd /opt/freedmr if [ "$BRIDGE_SERVER" == 1 ] then echo 'Starting in Bridge mode...' - python /opt/freedmr/bridge.py -c freedmr.cfg -r rules.py + exec python /opt/freedmr/bridge.py -c freedmr.cfg -r rules.py else echo 'Starting in FreeDMR mode...' python /opt/freedmr/hotspot_proxy_v2.py & diff --git a/docker-configs/supervisord.conf b/docker-configs/supervisord.conf new file mode 100644 index 0000000..76bf688 --- /dev/null +++ b/docker-configs/supervisord.conf @@ -0,0 +1,22 @@ +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 + +[program:freedmr] +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +command=python /opt/freedmr/bridge_master.py -c freedmr.cfg + +[program:proxy] +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +command=python /opt/freedmr/hotspot_proxy_v2.py + +[program:playback] +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +command=/opt/freedmr/playback.py -c loro.cfg