FreeBSD/jails/config/git/gitea-restart.sh

24 lines
701 B
Bash
Executable File

#!/usr/local/bin/bash
# Copyright (c) 2018-2022, diyIT.org
# All rights reserved.
#
# BSD 2-Clause License ("Simplified BSD License" or "FreeBSD License")
# https://diyit.org/license/
#
#
Q=`netstat -LAan | grep "*.3000" | cut -f3 -d" " | cut -f1 -d/`
# Q is null if gitea service is not running
# 1537 is max stuck recvQ qlen limit when logging start:
# sonewconn: pcb 0xfffff804b9f73d58: Listen queue overflow: 1537 already in queue awaiting acceptance (30 occurrences)
if [ ! "$Q" ] || [ $Q -ge 100 ]; then
echo "restarting gitea stuck at $Q"
tail /var/log/gitea/gitea.log
kill -9 `pgrep gitea` ; sleep 2 ; service gitea start
fi
# crontab - 5 * * * * /mnt/config/gitea-restart.sh