Я написал bash script для перезапуска Apache, когда он повесил и отправил письмо администратору. Код показан ниже. код перезапустит Apache, если число Apache-процесса равно нулю. Проблема в том, что Apache некоторое время зависает, а процессы все еще не равны нулю, поэтому в этом случае script не перезапустит Apache. Нужно: как мне изменить код для перезапуска Apache, если он повешен, а процессы не равны нулю.
#!/bin/bash
if [ `pgrep apache2 -c` -le "0" ]; then
/etc/init.d/apache2 stop
pkill -u www-data
/etc/init.d/apache2 start
echo "restarting....."
SUBJECT="Apache auto restart"
# Email To ?
EMAIL="[email protected]"
# Email text/message
EMAILMESSAGE="apache auto restart done"
# send an email using /bin/mail
/bin/mail -s "$SUBJECT" "$EMAIL" "$EMAILMESSAGE"
fi