я использую в для планирования сценария в контейнере Docker на основе Centos.
например echo "bash /path/to/script.sh" | at now + 1 minute
В основном он работает так, как ожидалось, за исключением того, что он каждую минуту вызывает зомби-процесс. Я предполагаю, что поведение связано с этой строкой в документации:
Я видел и пробовал предложения от Удалить процесс-зомби из таблицы процессов но безрезультатно.
Могу ли я заставить zombie ps исчезнуть или есть альтернативный способ сделать это, который не приведет к такому же результату zombie ps?
РЕДАКТИРОВАТЬ: содержимое одного из скриптов:
#!/bin/bash
exec 1> >(logger -s -t $(basename $0)) 2>&1
#probe the seed node if this isn't the seed node
# set -ex
[[ `hostname` =~ -([0-9]+)$ ]] || exit 1
ordinal=${BASH_REMATCH[1]}
#if this is the first node then attempt to probe second until successful
if [[ $ordinal -eq 0 ]]; then
while ! gluster peer probe {{gluster.service_name}}-1.{{gluster.service_name}}.default.svc.cluster.local; do sleep 2; done
fi
#if this is the second node then probe the first to create the trusted pool
if [[ $ordinal -eq 1 ]]; then
while ! gluster peer probe {{gluster.service_name}}-0.{{gluster.service_name}}.default.svc.cluster.local; do sleep 2; done
fi
Я забыл опубликовать ответ, что я обошел это, просто используя cron.
(crontab -l 2>/dev/null; echo "*/1 * * * * /path/to/job -with args") | crontab -
Видеть https://stackoverflow.com/a/9625233/400048
Обратите внимание: если вы работаете в Docker, вам необходимо запустить crond.