Зомби делают из задания 'tail -f' cron'а, которое запускает и запускает скрипт оболочки
Я понимаю, что не нужно беспокоиться об одном подобном зомби-процессе, я просто хочу получить более профессиональный результат (без зомби) из своего кода.
Моя задача cron по вызову сценария оболочки создает одного зомби сценария оболочки только при первом запуске сценария оболочки; то есть, в первый раз ПОСЛЕ 'tail -f' "догоняет" при первоначальном запуске. Это задание @reboot cron, поэтому при перезагрузке зомби сценария оболочки не генерируется, даже если задание cron запускает сценарий оболочки много раз, если в "tail -f" есть больше строк, немедленно доступных из файла. это мониторинг (/var/log/kern.log). Как только задание cron 'tail -f' перехватит последнюю строку в файле kern.log, зомби будет создан в следующий раз, когда 'tail -f | grep ...|xargs myshellscript'производит вывод. Как только этот одиночный зомби создан, его больше никогда не добавляют, независимо от того, сколько раз запись cron производит дальнейший вывод.
Я пробовал очевидное изменение записи cron для запуска сценария оболочки, начинающегося с "nohup" и сопровождаемого "&", но этот зомби все еще создается.
запись в crontab:
@reboot nice -n15 /usr/bin/tail -F -n 0 /var/log/kern.log
|/bin/grep --line-buffered ' SRC='
|stdbuf -o0 /bin/grep -v 'SRC=10\.'
|stdbuf -o0 grep -v 'SRC=0\.0\.0\.0'
|stdbuf -o0 grep -v 'SRC=127.0\.0\.1'
|stdbuf -o0 /bin/grep -v 'SRC=192\.168\.'
|stdbuf -o0 awk '{for (i=4;i<=NF;i++)
{if ($i ~ "^SRC=") {{gsub("SRC=","",$i); printf $i" \""}
printf "kern.log "$1" "$2" "$3; for (i=i;i<=NF;i++)
{if ($i ~ "^PROTO=" || $i ~ "^SPT=" || $i ~ "^DPT")
{printf " "$i}} print "\""}}}'
|xargs -l1 /home/homeowner/blacklistme.sh >/dev/null 2>&1
Независимо от того, заканчивается ли /home/homeowner/blacklistme.sh командой "exit" или без нее, этот зомби тоже не предотвращается.
Это часть проекта брандмауэра, которым я делюсь на GitHub, направленного на защиту владельцев систем видеонаблюдения и автоматизации Linux. Более подробная информация на https://github.com/kenneth558/robust-linux-firewalling-scripting. Спасибо всем, кто может мне помочь!