added healthchecks

This commit is contained in:
justmarvinn 2025-04-22 21:43:22 +02:00
parent ab99ab97fd
commit 1ff6c3b6d7
5 changed files with 51 additions and 10 deletions

8
healthcheck-service Normal file
View File

@ -0,0 +1,8 @@
# /etc/systemd/system/sim800-healthcheck.service
[Unit]
Description=SIM800 Healthcheck service
[Service]
Type=oneshot
ExecStart=/etc/init.d/sim800c healthcheck

12
healthcheck-timer Normal file
View File

@ -0,0 +1,12 @@
# /etc/systemd/system/sim800-healthcheck.timer
[Unit]
Description=SIM800 healthcheck timer
After=sim800.service
[Timer]
OnBootSec=1min
OnUnitActiveSec=1m
[Install]
WantedBy=timers.target

View File

@ -8,7 +8,8 @@ fi
set -e
apt update
apt install -y ppp curl
apt remove -y inetutlis-ping
apt install -y ppp curl iputils-ping
mkdir -p /etc/ppp/chatscripts
mkdir -p /etc/ppp/peers
@ -19,7 +20,11 @@ curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/chat" > /etc/
curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/peer" > /etc/ppp/peers/sim800c
curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/script" > /etc/init.d/sim800c
curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/service" > /etc/systemd/system/sim800.service
curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/healthcheck-service" > /etc/systemd/system/sim800-healthcheck.service
curl -sSL "https://git.openergy.ru/LUCKFOX/SIM800C/raw/branch/main/healthcheck-timer" > /etc/systemd/system/sim800-healthcheck.timer
chmod +x /etc/init.d/sim800c
systemctl enable sim800
systemctl start sim800
systemctl enable sim800-healthcheck
systemctl start sim800-healthcheck

28
script
View File

@ -4,25 +4,41 @@
case "$1" in
start)
echo "AT+CFUN=1,1" > /dev/ttyS3
sleep 3
echo "AT+IPR=115200" > /dev/ttyS3
# echo "AT+CFUN=1,1" > /dev/ttyS3
# sleep 3
# echo "AT+IPR=115200" > /dev/ttyS3
# sleep 1
pon sim800c
;;
stop)
poff sim800c
# sleep 3
# echo "+++" > /dev/ttyS3
# sleep 3
echo "AT+CFUN=1,1" > /dev/ttyS3
sleep 3
# echo "AT+CFUN=1,1" > /dev/ttyS3
# sleep 3
;;
restart|reload)
$0 stop
sleep 1
$0 start
;;
healthcheck)
if ! ping -I ppp0 -c 5 -W 5 1.1.1.1 > /dev/null; then
echo "Healthcheck failed"
systemctl restart sim800
exit 1
else
echo "Healthcheck passed"
exit 0
fi
;;
*)
echo "Usage: $0 {start|stop|restart}"
echo "Usage: $0 {start|stop|restart|healthcheck}"
exit 1
esac

View File

@ -6,11 +6,11 @@ After=rc-local.service
[Service]
Type=forking
PIDFile=/run/ppp0.pid
# PIDFile=/run/ppp0.pid
ExecStart=/etc/init.d/sim800c start
ExecStop=/etc/init.d/sim800c stop
Restart=on-failure
RestartSec=5s
# Restart=on-failure
# RestartSec=5s
[Install]
WantedBy=multi-user.target