Add local watchdog (HTTP-200 probe + per-minute cron auto-restart)
This commit is contained in:
14
install.sh
14
install.sh
@@ -5,20 +5,27 @@ set -e
|
||||
|
||||
WRAPPER_SRC="./start-9router.sh"
|
||||
WRAPPER_DST="/usr/local/bin/start-9router.sh"
|
||||
WATCHDOG_SRC="./9router-watchdog.sh"
|
||||
WATCHDOG_DST="/usr/local/bin/9router-watchdog.sh"
|
||||
LOG="/home/ardhi/9router.log"
|
||||
USER="ardhi"
|
||||
|
||||
echo "==> Installing wrapper to $WRAPPER_DST"
|
||||
install -m 0755 "$WRAPPER_SRC" "$WRAPPER_DST"
|
||||
|
||||
echo "==> Installing watchdog to $WATCHDOG_DST"
|
||||
install -m 0755 "$WATCHDOG_SRC" "$WATCHDOG_DST"
|
||||
|
||||
echo "==> Preparing log file ($LOG) owned by $USER"
|
||||
touch "$LOG"
|
||||
chown "$USER:$USER" "$LOG"
|
||||
chmod 644 "$LOG"
|
||||
|
||||
echo "==> Registering @reboot cron as ROOT"
|
||||
# Must be root's crontab (wrapper uses runuser to drop privileges).
|
||||
( crontab -l 2>/dev/null | grep -v 'start-9router.sh'; echo "@reboot $WRAPPER_DST" ) | crontab -
|
||||
echo "==> Registering @reboot cron + watchdog as ROOT"
|
||||
# Must be root's crontab (wrapper/watchdog use runuser to drop privileges).
|
||||
( crontab -l 2>/dev/null | grep -v 'start-9router.sh'; grep -v '9router-watchdog.sh'; \
|
||||
echo "@reboot $WRAPPER_DST"; \
|
||||
echo "* * * * * $WATCHDOG_DST" ) | crontab -
|
||||
|
||||
echo "==> Ensuring cron daemon is active"
|
||||
systemctl enable cron >/dev/null 2>&1 || true
|
||||
@@ -30,3 +37,4 @@ systemctl disable 9router >/dev/null 2>&1 || true
|
||||
echo "==> Done. Reboot to verify:"
|
||||
echo " ss -ltnp | grep 20128"
|
||||
echo " curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:20128/v1/models"
|
||||
echo "==> Watchdog runs every minute (cron) and restarts if /v1/models != 200."
|
||||
|
||||
Reference in New Issue
Block a user