I run docker with Dockerfile as below.
FROM alpine
RUN touch crontab
RUN echo "* * * * * ( sleep 15; date > /proc/1/fd/1 )" | tee -a crontab
RUN echo "* * * * * ( sleep 25; date > /proc/1/fd/1 )" | tee -a crontab
RUN echo "* * * * * ( sleep 35; date > /proc/1/fd/1 )" | tee -a crontab
RUN echo "* * * * * ( sleep 45; date > /proc/1/fd/1 )" | tee -a crontab
RUN echo "* * * * * ( sleep 55; date > /proc/1/fd/1 )" | tee -a crontab
RUN /usr/bin/crontab crontab
CMD ["crond", "-f", "-l", "8"]
But the 55th second will work in the second round.
When looking at the log, I found that at the 55th second it didn’t work because “process already running”
crond[1]: crond (busybox 1.36.1) started, log level 8
2024-05-31T05:56:00.485347287Z crond[1]: USER root pid 7 cmd ( sleep 15; date > /proc/1/fd/1 )
2024-05-31T05:56:00.485917828Z crond[1]: USER root pid 8 cmd ( sleep 25; date > /proc/1/fd/1 )
2024-05-31T05:56:00.486937353Z crond[1]: USER root pid 10 cmd ( sleep 35; date > /proc/1/fd/1 )
2024-05-31T05:56:00.487525816Z crond[1]: USER root pid 12 cmd ( sleep 45; date > /proc/1/fd/1 )
2024-05-31T05:56:00.489404116Z crond[1]: USER root pid 14 cmd ( sleep 55; date > /proc/1/fd/1 )
2024-05-31T05:56:15.487633344Z Fri May 31 05:56:15 UTC 2024
2024-05-31T05:56:25.489193048Z Fri May 31 05:56:25 UTC 2024
2024-05-31T05:56:35.490347299Z Fri May 31 05:56:35 UTC 2024
2024-05-31T05:56:45.492999502Z Fri May 31 05:56:45 UTC 2024
2024-05-31T05:56:55.493936068Z Fri May 31 05:56:55 UTC 2024
2024-05-31T05:57:00.489746594Z crond[1]: user root: process already running: ( sleep 55; date > /proc/1/fd/1 )
2024-05-31T05:57:00.489946383Z crond[1]: USER root pid 17 cmd ( sleep 15; date > /proc/1/fd/1 )
2024-05-31T05:57:00.490996465Z crond[1]: USER root pid 18 cmd ( sleep 25; date > /proc/1/fd/1 )
2024-05-31T05:57:00.491091843Z crond[1]: USER root pid 20 cmd ( sleep 35; date > /proc/1/fd/1 )
2024-05-31T05:57:00.492390121Z crond[1]: USER root pid 21 cmd ( sleep 45; date > /proc/1/fd/1 )
2024-05-31T05:57:15.493589678Z Fri May 31 05:57:15 UTC 2024
2024-05-31T05:57:25.493495344Z Fri May 31 05:57:25 UTC 2024
2024-05-31T05:57:35.494515694Z Fri May 31 05:57:35 UTC 2024
2024-05-31T05:57:45.493413857Z Fri May 31 05:57:45 UTC 2024
Is this a bug of Alpine or busybox? Is there a way to avoid this problem?