Skip to content

Commit 795d987

Browse files
authored
[cron] sleep random seconds (<59), if not interactive or forced
acmesh-official#944 (comment) Let's Encrypt employee said in the comments "we do see peaks at the beginning of minutes and even seconds; the finer-grained time randomization, the better." This adds a random amount of sleep second before beginning the cron job. I considered reading from `/dev/urandom` and so on, but we aren't doing anything security critical here so I thought that just using the process number modulo 59 (the largest prime <= 60) should give decent variability across the systems. The starting hour and minute are already randomized during the installation.
1 parent 0f61e9c commit 795d987

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

acme.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6737,6 +6737,11 @@ cron() {
67376737
export _ACME_IN_CRON=1
67386738
_initpath
67396739
_info "$(__green "===Starting cron===")"
6740+
if [ -z "$FORCE" ] && [ -z "$__INTERACTIVE" ]; then
6741+
random_sec=$(_math $$ % 59)
6742+
_info "Sleeping for $random_sec seconds."
6743+
_sleep $random_sec
6744+
fi
67406745
if [ "$AUTO_UPGRADE" = "1" ]; then
67416746
export LE_WORKING_DIR
67426747
(

0 commit comments

Comments
 (0)