bootstrap.sh 884 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. if [[ "${SKIP_CLAMD}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
  3. echo "SKIP_CLAMD=y, skipping ClamAV..."
  4. sleep 365d
  5. exit 0
  6. fi
  7. # Create log pipes
  8. mkdir -p /var/log/clamav
  9. touch /var/log/clamav/clamd.log /var/log/clamav/freshclam.log
  10. chown -R clamav:clamav /var/log/clamav/
  11. chown root:tty /dev/console
  12. chmod g+rw /dev/console
  13. # Prepare
  14. [[ ! -f /var/lib/clamav/whitelist.ign2 ]] && touch /var/lib/clamav/whitelist.ign2
  15. dos2unix /var/lib/clamav/whitelist.ign2
  16. sed -i '/^\s*$/d' /var/lib/clamav/whitelist.ign2
  17. BACKGROUND_TASKS=()
  18. (
  19. while true; do
  20. sleep 1m
  21. freshclam
  22. sleep 1h
  23. done
  24. ) &
  25. BACKGROUND_TASKS+=($!)
  26. clamd &
  27. BACKGROUND_TASKS+=($!)
  28. while true; do
  29. for bg_task in ${BACKGROUND_TASKS[*]}; do
  30. if ! kill -0 ${bg_task} 1>&2; then
  31. echo "Worker ${bg_task} died, stopping container waiting for respawn..."
  32. kill -TERM 1
  33. fi
  34. sleep 10
  35. done
  36. done