К исходному сообщению у вас есть хорошее объяснение :! http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html Ошибка вызвана межчисленным переполнением, которое не проверяется.
Когда cron
запускает /root/auto-restart.sh
, он запускает его с помощью sh
в соответствии с sh -c /root/auto-restart.sh
. Поскольку вы использовали параметр -f
с pgrep
, pgrep
ищет auto-restart.sh
в любом месте командных строк запущенных процессов; поэтому он соответствует auto-restart.sh
, а также sh -c /root/auto-restart.sh
. Последний отображается как обычный sh
в выводе pgrep -l
.
pgrep -c auto-restart.sh
даст вам нужное поведение. (Я отказался от -l
, потому что с -c
это бессмысленно.)
(Ваш сервер, вероятно, имеет сторожевой таймер , который может быть более подходящим, хотя я полагаю, что если сервер все еще работает достаточно хорошо для выполнения задач cron, но в остальном считается отключенным, тогда сторожевой таймер не поездка.)