From eeca08ce383f2d8dfbdf04c269a0bc877e4a58bb Mon Sep 17 00:00:00 2001 From: "Josh.5" Date: Fri, 29 Sep 2023 20:20:21 +1300 Subject: [PATCH] Add dumb-udev as a replacemet for --- Dockerfile.debian | 8 +++++ overlay/etc/cont-init.d/30-configure_udev.sh | 4 +++ overlay/etc/supervisor.d/dumb-udev.ini | 15 +++++++++ overlay/usr/bin/start-dumb-udev.sh | 34 ++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 overlay/etc/supervisor.d/dumb-udev.ini create mode 100755 overlay/usr/bin/start-dumb-udev.sh diff --git a/Dockerfile.debian b/Dockerfile.debian index 77e9e6c..9b4a09c 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -94,6 +94,14 @@ RUN \ python3-setuptools \ python3-venv \ && \ + echo "**** Install dumb-udev ****" \ + && python3 -m pip install \ + --break-system-packages \ + --pre \ + --upgrade \ + --no-cache-dir \ + git+https://github.com/Steam-Headless/dumb-udev.git@master + && \ echo "**** Section cleanup ****" \ && apt-get clean autoclean -y \ && apt-get autoremove -y \ diff --git a/overlay/etc/cont-init.d/30-configure_udev.sh b/overlay/etc/cont-init.d/30-configure_udev.sh index 5eb9a2b..68459fc 100644 --- a/overlay/etc/cont-init.d/30-configure_udev.sh +++ b/overlay/etc/cont-init.d/30-configure_udev.sh @@ -49,6 +49,10 @@ else # Disable supervisord script echo "**** Disable udev service ****"; sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor.d/udev.ini + if [ ! -d /run/udev/data ]; then + echo "**** Enable dumb-udev service ****"; + sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor.d/dumb-udev.ini + fi fi diff --git a/overlay/etc/supervisor.d/dumb-udev.ini b/overlay/etc/supervisor.d/dumb-udev.ini new file mode 100644 index 0000000..6fd904e --- /dev/null +++ b/overlay/etc/supervisor.d/dumb-udev.ini @@ -0,0 +1,15 @@ + +[program:udev] +priority=10 +autostart=false +autorestart=true +user=root +directory=/ +command=start-dumb-udev.sh +stopsignal=INT +stdout_logfile=/var/log/supervisor/dumb-udev.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=7 +stderr_logfile=/var/log/supervisor/dumb-udev.err.log +stderr_logfile_maxbytes=10MB +stderr_logfile_backups=7 diff --git a/overlay/usr/bin/start-dumb-udev.sh b/overlay/usr/bin/start-dumb-udev.sh new file mode 100755 index 0000000..a979cdc --- /dev/null +++ b/overlay/usr/bin/start-dumb-udev.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +### +# File: start-dumb-udev.sh +# Project: bin +# File Created: Tuesday, 12th January 2022 8:46:47 am +# Author: Josh.5 (jsunnex@gmail.com) +# ----- +# Last Modified: Friday, 14th January 2022 9:21:00 am +# Modified By: Josh.5 (jsunnex@gmail.com) +### +set -e + +# CATCH TERM SIGNAL: +_term() { + kill -TERM "$dumb_udev_pid" 2>/dev/null +} +trap _term SIGTERM SIGINT + + +# CONFIGURE: +# Remove lockfile +rm -f /tmp/.started-udev + + +# EXECUTE PROCESS: +# Start dumb-udev +dumb-udev +dumb_udev_pid=$! +# Touch lockfile +sleep 1 +touch /tmp/.started-udev + +# WAIT FOR CHILD PROCESS: +wait "$dumb_udev_pid"