Skip to content

Commit d2f9189

Browse files
authored
Add config to avoid restarting daemons on error (hestiacp#3183)
* Replace configuration with flag When able, `send_email_report` accepts a flag to restart the service only if it has already failed to restart.
1 parent 6058a95 commit d2f9189

File tree

3 files changed

+42
-6
lines changed

3 files changed

+42
-6
lines changed

bin/v-restart-dns

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ send_email_report() {
2929
tmpfile=$(mktemp)
3030
subj="$(hostname): "$DNS_SYSTEM" restart failed"
3131
/usr/sbin/named-checkconf "$dns_conf" >> $tmpfile 2>&1
32-
service "$DNS_SYSTEM" restart >> $tmpfile 2>&1
32+
if [ "$1" == "DO_RESTART" ]; then
33+
service "$DNS_SYSTEM" restart >> $tmpfile 2>&1
34+
fi
3335
cat $tmpfile | $SENDMAIL -s "$subj" $email
3436
rm -f $tmpfile
3537
}
@@ -54,10 +56,22 @@ if [ "$1" = 'scheduled' ] || [ -z "$1" -a "$SCHEDULED_RESTART" = 'yes' ]; then
5456
exit
5557
fi
5658

59+
60+
if [ -e '/etc/named.conf' ]; then
61+
dns_conf='/etc/named.conf'
62+
else
63+
dns_conf='/etc/bind/named.conf'
64+
fi
65+
/usr/sbin/named-checkconf "$dns_conf" > /dev/null 2>&1
66+
if [ $? -ne 0 ]; then
67+
send_email_report
68+
check_result "$E_RESTART" "$DNS_SYSTEM restart failed'"
69+
fi
70+
5771
# Restart system
5872
$BIN/v-restart-service "$DNS_SYSTEM" "$1" > /dev/null 2>&1
5973
if [ $? -ne 0 ]; then
60-
send_email_report
74+
send_email_report "DO_RESTART"
6175
check_result "$E_RESTART" "$DNS_SYSTEM restart failed"
6276
fi
6377

bin/v-restart-proxy

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ send_email_report() {
2626
tmpfile=$(mktemp)
2727
subj="$(hostname): $PROXY_SYSTEM restart failed"
2828
nginx -t >> $tmpfile 2>&1
29-
service "$PROXY_SYSTEM" restart >> $tmpfile 2>&1
29+
30+
if [ "$1" == "DO_RESTART" ]; then
31+
service "$PROXY_SYSTEM" restart >> $tmpfile 2>&1
32+
fi
3033
cat "$tmpfile" | $SENDMAIL -s "$subj" "$email"
3134
if [ "$DEBUG_MODE" = "true" ]; then
3235
echo "[ $date | $PROXY_SYSTEM | PROXY ]" >> /var/log/hestia/debug.log 2>&1
@@ -67,6 +70,19 @@ if [ -f "$HESTIA/web/inc/nginx_proxy" ]; then
6770
if [ "$1" = 'background' ]; then
6871
# Restart system
6972
sleep 15
73+
74+
# Preform a check if Nginx is valid as reload doesn't throw an error / exit
75+
if [ "$DEBUG_MODE" = "true" ]; then
76+
echo "[ $date | $PROXY_SYSTEM ]" >> /var/log/hestia/debug.log 2>&1
77+
service $PROXY_SYSTEM configtest >> /var/log/hestia/debug.log 2>&1
78+
else
79+
service $PROXY_SYSTEM configtest > /dev/null 2>&1
80+
fi
81+
if [ $? -ne 0 ]; then
82+
send_email_report
83+
check_result "$E_RESTART" "$PROXY_SYSTEM restart failed"
84+
fi
85+
7086
$BIN/v-restart-service $PROXY_SYSTEM > /dev/null 2>&1
7187

7288
# Update restart queue
@@ -81,7 +97,7 @@ if [ -f "$HESTIA/web/inc/nginx_proxy" ]; then
8197
else
8298
# Default behaviour
8399

84-
# Preform an check if Nginx is valid as reload doesn't throw an error / exit
100+
# Preform a check if Nginx is valid as reload doesn't throw an error / exit
85101
if [ "$DEBUG_MODE" = "true" ]; then
86102
echo "[ $date | $PROXY_SYSTEM ]" >> /var/log/hestia/debug.log 2>&1
87103
service $PROXY_SYSTEM configtest >> /var/log/hestia/debug.log 2>&1
@@ -98,6 +114,10 @@ else
98114
restart="ssl"
99115
fi
100116
$BIN/v-restart-service "$PROXY_SYSTEM" "$restart" > /dev/null 2>&1
117+
if [ $? -ne 0 ]; then
118+
send_email_report "DO_RESTART"
119+
check_result "$E_RESTART" "$PROXY_SYSTEM restart failed"
120+
fi
101121

102122
# Update restart queue
103123
if [ -e "$HESTIA/data/queue/restart.pipe" ]; then

bin/v-restart-web

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ send_email_report() {
3030
else
3131
service $WEB_SYSTEM configtest >> "$tmpfile" 2>&1
3232
fi
33-
service "$WEB_SYSTEM" restart >> "$tmpfile" 2>&1
33+
if [ "$1" == "DO_RESTART" ]; then
34+
service "$WEB_SYSTEM" restart >> "$tmpfile" 2>&1
35+
fi
3436
cat "$tmpfile" | $SENDMAIL -s "$subj" "$email"
3537
if [ "$DEBUG_MODE" = "true" ]; then
3638
echo "[ $date | $WEB_SYSTEM | WEB ]" >> /var/log/hestia/debug.log 2>&1
@@ -96,7 +98,7 @@ fi
9698
$BIN/v-restart-service "$WEB_SYSTEM" "$restart"
9799

98100
if [ $? -ne 0 ]; then
99-
send_email_report
101+
send_email_report "DO_RESTART"
100102
check_result "$E_RESTART" "$WEB_SYSTEM restart failed"
101103
fi
102104

0 commit comments

Comments
 (0)