From 860b518c74f8f29d29cb25eb471a9cabf84ec655 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 30 Jul 2023 01:15:12 -0500 Subject: [PATCH] standard cron Signed-off-by: Eric Nemchik --- README.md | 4 ++-- .../s6-rc.d/init-mod-universal-cron-add-package/run | 8 +++++--- .../s6-rc.d/init-mod-universal-cron-setup/up | 1 - .../dependencies.d/init-mods-package-install | 0 .../run | 0 .../type | 0 .../s6-rc.d/init-mod-universal-crontab-config/up | 1 + ...al-cron-setup => init-mod-universal-crontab-config} | 0 .../dependencies.d/init-services | 0 root/etc/s6-overlay/s6-rc.d/svc-cron/run | 10 ++++++++++ .../s6-rc.d/{svc-mod-universal-cron => svc-cron}/type | 0 root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/run | 10 ---------- ...al-cron-setup => init-mod-universal-crontab-config} | 0 .../contents.d/{svc-mod-universal-cron => svc-cron} | 0 14 files changed, 18 insertions(+), 16 deletions(-) delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/up rename root/etc/s6-overlay/s6-rc.d/{init-mod-universal-cron-setup => init-mod-universal-crontab-config}/dependencies.d/init-mods-package-install (100%) rename root/etc/s6-overlay/s6-rc.d/{init-mod-universal-cron-setup => init-mod-universal-crontab-config}/run (100%) mode change 100755 => 100644 rename root/etc/s6-overlay/s6-rc.d/{init-mod-universal-cron-setup => init-mod-universal-crontab-config}/type (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/up rename root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/{init-mod-universal-cron-setup => init-mod-universal-crontab-config} (100%) rename root/etc/s6-overlay/s6-rc.d/{svc-mod-universal-cron => svc-cron}/dependencies.d/init-services (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/svc-cron/run rename root/etc/s6-overlay/s6-rc.d/{svc-mod-universal-cron => svc-cron}/type (100%) delete mode 100755 root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/run rename root/etc/s6-overlay/s6-rc.d/user/contents.d/{init-mod-universal-cron-setup => init-mod-universal-crontab-config} (100%) rename root/etc/s6-overlay/s6-rc.d/user/contents.d/{svc-mod-universal-cron => svc-cron} (100%) diff --git a/README.md b/README.md index 2fc615c..4a821b2 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ In any container docker arguments, set an environment variable `DOCKER_MODS=linu If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:universal-cron|linuxserver/mods:universal-mod2` -This mod will ensure you have `/config/crontabs/root` and `/config/crontabs/abc` files where you can add cron jobs to run inside the container as root or as the abc user (associated with the PUID/PGID environment variables). +This mod will ensure you have a `/config/crontabs/abc` file where you can add cron jobs to run inside the container as the abc user (associated with the PUID/PGID environment variables). No cron jobs (aside from what may be included in the base OS) are included by default. -You can test to confirm things are working by adding the following line to `/config/crontabs/root` or `/config/crontabs/abc` +You can test to confirm things are working by adding the following line to `/config/crontabs/abc` ```cron */5 * * * * /bin/echo test >> /config/tmp.txt diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-add-package/run index 2d07fce..ff35c59 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-add-package/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-add-package/run @@ -1,9 +1,11 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -if [ ! -f /usr/sbin/cron ] && [ -f /usr/bin/apt ]; then +if ! builtin command -v busybox >/dev/null; then + echo "**** Adding busybox to package install list ****" + echo "busybox" >>/mod-repo-packages-to-install.list +fi +if [[ -f /usr/bin/apt ]] && [[ ! -f /usr/sbin/cron ]]; then echo "**** Adding cron to package install list ****" echo "cron" >>/mod-repo-packages-to-install.list -else - echo "**** cron package already installed, skipping ****" fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/up b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/up deleted file mode 100644 index b9dabf7..0000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/dependencies.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/dependencies.d/init-mods-package-install similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/dependencies.d/init-mods-package-install rename to root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/dependencies.d/init-mods-package-install diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/run b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/run old mode 100755 new mode 100644 similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/run rename to root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/type b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/type rename to root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/type diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/up b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/up new file mode 100644 index 0000000..3d8d756 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-cron-setup b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-crontab-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-cron-setup rename to root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-crontab-config diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/dependencies.d/init-services rename to root/etc/s6-overlay/s6-rc.d/svc-cron/dependencies.d/init-services diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run new file mode 100644 index 0000000..f116b80 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/run @@ -0,0 +1,10 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if builtin command -v busybox >/dev/null && [[ $(busybox) =~ [[:space:]](crond)([,]|$) ]]; then + exec busybox crond -f -S -l 5 +elif [[ -f /usr/bin/apt ]] && [[ -f /usr/sbin/cron ]]; then + exec /usr/sbin/cron -f -L 5 +else + echo "**** cron not found ****" +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/type b/root/etc/s6-overlay/s6-rc.d/svc-cron/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/type rename to root/etc/s6-overlay/s6-rc.d/svc-cron/type diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/run deleted file mode 100755 index 6f74396..0000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-cron/run +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [ -f /usr/bin/apt ]; then - # ubuntu - exec /usr/sbin/cron -f -L 1 -elif [ -f /sbin/apk ]; then - # alpine - exec /usr/sbin/crond -f -S -l 5 -fi diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-cron-setup b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-crontab-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-cron-setup rename to root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-crontab-config diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-universal-cron b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-universal-cron rename to root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-cron