From 593244c5579d4b80ede8080d263ca4f52308dbea Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Tue, 15 Feb 2022 22:50:49 -0500 Subject: [PATCH] make exim and wireguard restart waiting for internet. untested --- distro-end | 13 +++++++++++++ epanic-clean | 12 ++++++++++-- mail-setup | 33 +++++++++++++++++++++------------ 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/distro-end b/distro-end index ee6693c..67e7a4e 100755 --- a/distro-end +++ b/distro-end @@ -573,6 +573,19 @@ sudo rm -f /etc/cron.d/unattended-upgrade-reboot /usr/local/bin/zelous-unattende # EOF if [[ -e /etc/wireguard/wghole.conf ]]; then + reload=false + if [[ ! -e /etc/systemd/system/wg-quick@wghole.service.d/override.conf ]]; then + reload=true + fi + sd /etc/systemd/system/wg-quick@wghole.service.d/override.conf <<'EOF' +[Unit] +StartLimitIntervalSec=0 + +[Service] +Restart=always +RestartSec=60 +EOF + if $reload; then ser daemon-reload; fi sgo wg-quick@wghole fi diff --git a/epanic-clean b/epanic-clean index 8c26855..354d88b 100755 --- a/epanic-clean +++ b/epanic-clean @@ -32,6 +32,14 @@ main() { return 0 fi + # example line: + # 2022-02-09 22:08:14.683 [59759] socket bind() to port 25 for address 10.8.0.28 failed: Cannot assign requested address: daemon abandoned + if [[ -e /etc/systemd/system/exim4.service.d/backup.conf ]]; then + regex="socket bind() to port 25 for address" + grep "$regex" $pl >> $pl-archive ||: + sed -i "/$regex/d" $pl + fi + # seems to randomly be caused by # Starting exim4-base housekeeping, exim4-base.service regex="^[^ ]* 00:00:0.* Failed writing transport results to pipe: Broken pipe$" @@ -58,10 +66,10 @@ main() { # them. write lock happens less but can fit under the same rule. if (( count > 20 )); then cat $pl - elif ! $newlines; then + elif ! $newlines; then grep "$regex" $pl >>$pl-archive sed -i "/$regex/d" $pl - fi + fi fi ## end broken pipe ## diff --git a/mail-setup b/mail-setup index ae3aabb..702c1d3 100755 --- a/mail-setup +++ b/mail-setup @@ -846,7 +846,7 @@ awk 'BEGIN { FS = ":" } ; $6 ~ /^\/home/ && $7 !~ /\/nologin$/ { print $1 }' /et case $HOSTNAME in $MAIL_HOST) sed -i "/^user:/d" /etc/aliases - ;; + ;; *) if ! grep -q "^$user:" /etc/aliases; then echo "$user: root" |m tee -a /etc/aliases @@ -2423,10 +2423,10 @@ EOF # this avoids some error. i cant remember what. todo: # test it out and document why/if its needed. -# i /etc/exim4/host_local_deny_exceptions <<'EOF' -# mail.fsf.org -# *.posteo.de -# EOF + # i /etc/exim4/host_local_deny_exceptions <<'EOF' + # mail.fsf.org + # *.posteo.de + # EOF # cron email from smarthost hosts will automatically be to # USER@FQDN. I redirect that to alerts@, on the smarthosts, but in @@ -2658,14 +2658,22 @@ backup_local: EOF # Bind to wghole to receive mailbackup. - # todo: will wghole fail to start without internet connectivity? - # if so, we need to set it automatically restart infinitely, - # and same with exim. wgholeip=$(sed -rn 's/^ *Address *= *([^/]+).*/\1/p' /etc/wireguard/wghole.conf) cat >>/etc/exim4/update-exim4.conf.conf <>/etc/exim4/update-exim4.conf.conf <>/etc/exim4/update-exim4.conf.conf <>/etc/exim4/conf.d/main/000_local-nn <<'EOF' -# spool_directory = /var/spool/myexim4 -# EOF + # cat >>/etc/exim4/conf.d/main/000_local-nn <<'EOF' + # spool_directory = /var/spool/myexim4 + # EOF cat >>/etc/myexim4/update-exim4.conf.conf <<'EOF' dc_eximconfig_configtype='smarthost' dc_smarthost='nn.b8.nz' @@ -2874,7 +2883,7 @@ sre exim4 case $HOSTNAME in $MAIL_HOST) m systemctl --now enable mailbindwatchdog - ;; + ;; *) soff mailbindwatchdog ;; -- 2.30.2