diff --git a/scripts/entrypoint-shared-httpd.sh b/scripts/entrypoint-shared-httpd.sh index c63b377..8f54dbb 100755 --- a/scripts/entrypoint-shared-httpd.sh +++ b/scripts/entrypoint-shared-httpd.sh @@ -60,7 +60,18 @@ fi /usr/sbin/crond # Tail Apache logs (becomes PID 1 process) +# Use a loop to pick up new log files as vhosts are added. +# tail -f only watches files that exist at start time. touch /var/log/httpd/error_log -tail -f /var/log/httpd/* - -exit 0 +TAIL_PID="" +while true; do + LOG_FILES=$(find /var/log/httpd/ -name '*.log' -o -name '*_log' 2>/dev/null | sort) + if [ -n "$TAIL_PID" ]; then + kill "$TAIL_PID" 2>/dev/null + wait "$TAIL_PID" 2>/dev/null + fi + tail -f $LOG_FILES & + TAIL_PID=$! + # Re-check for new log files every 60 seconds + sleep 60 +done