improve background service handling
This commit is contained in:
parent
d848df35a6
commit
cf925b88e4
|
|
@ -34,8 +34,9 @@ fi
|
|||
# start docker deamon (if installed = DinD)
|
||||
#################################################################
|
||||
if [[ -f /usr/bin/dockerd ]]; then
|
||||
export DOCKER_MODE=dind
|
||||
log INFO "Starting Docker engine..."
|
||||
sudo rm -rf /var/run/docker.pid /run/docker/containerd/containerd.pid
|
||||
sudo rm -f /var/run/docker.pid /run/docker/containerd/containerd.pid
|
||||
sudo /usr/local/bin/dind-hack true
|
||||
sudo service docker start
|
||||
while ! docker stats --no-stream &>/dev/null; do
|
||||
|
|
@ -43,9 +44,12 @@ if [[ -f /usr/bin/dockerd ]]; then
|
|||
sleep 2
|
||||
tail -n 1 /var/log/docker.log
|
||||
done
|
||||
export DOCKER_PID=$(</var/run/docker.pid)
|
||||
echo "==========================================================="
|
||||
docker info
|
||||
echo "==========================================================="
|
||||
else
|
||||
export DOCKER_MODE=dood
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -74,5 +78,5 @@ fi
|
|||
if [[ $fixids == "true" ]]; then
|
||||
exec sudo -E bash /opt/run_fixids.sh
|
||||
else
|
||||
bash /opt/run_runner.sh
|
||||
exec bash /opt/run_runner.sh
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -117,4 +117,42 @@ unset $(env | grep "^GITEA_" | cut -d= -f1)
|
|||
#################################################
|
||||
# run the act runner
|
||||
#################################################
|
||||
exec act_runner daemon --config "$effective_config_file"
|
||||
case $DOCKER_MODE in
|
||||
dind)
|
||||
act_runner daemon --config "$effective_config_file" &
|
||||
act_runner_pid=$!
|
||||
|
||||
function shutdown_act() {
|
||||
log INFO "Stopping act_runner..."
|
||||
kill -SIGTERM $act_runner_pid || true
|
||||
}
|
||||
|
||||
function shutdown_docker() {
|
||||
log INFO "Stopping docker engine..."
|
||||
sudo service docker stop
|
||||
while [[ -e /proc/$DOCKER_PID ]]; do
|
||||
log INFO "Waiting for docker engine to shutdown..."
|
||||
sleep 2
|
||||
done
|
||||
}
|
||||
|
||||
trap "shutdown_act; shutdown_docker" INT TERM HUP QUIT
|
||||
|
||||
# monitoring docker engine/act_runner process status
|
||||
while [[ -e /proc/$DOCKER_PID && -e /proc/$act_runner_pid ]]; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [[ -e /proc/$DOCKER_PID ]]; then
|
||||
shutdown_docker
|
||||
else
|
||||
log ERROR "Docker engine unexpectly ended."
|
||||
shutdown_act
|
||||
fi
|
||||
exit 1 # there is no scenario where the background processes should exit on their own
|
||||
;;
|
||||
|
||||
*)
|
||||
exec act_runner daemon --config "$effective_config_file"
|
||||
;;
|
||||
esac
|
||||
|
|
|
|||
Loading…
Reference in New Issue