Cleanup if startup failed

Signed-off-by: Christian König <ckoenig@posteo.de>
This commit is contained in:
Christian König 2022-12-08 09:49:02 +01:00
parent a4e20f79a3
commit f713b14ba0
No known key found for this signature in database
1 changed files with 16 additions and 4 deletions

View File

@ -23,6 +23,11 @@ is_running() {
return 1
}
cleanup() {
# Run post-stop script, which does cleanup among runtime files
sh "${PI_HOLE_SCRIPT_DIR}/pihole-FTL-poststop.sh"
}
# Start the service
start() {
@ -33,10 +38,15 @@ start() {
sh "${PI_HOLE_SCRIPT_DIR}/pihole-FTL-prestart.sh"
if setcap CAP_NET_BIND_SERVICE,CAP_NET_RAW,CAP_NET_ADMIN,CAP_SYS_NICE,CAP_IPC_LOCK,CAP_CHOWN+eip "/usr/bin/pihole-FTL"; then
su -s /bin/sh -c "/usr/bin/pihole-FTL" pihole || exit $?
su -s /bin/sh -c "/usr/bin/pihole-FTL" pihole || ec=$?
else
echo "Warning: Starting pihole-FTL as root because setting capabilities is not supported on this system"
/usr/bin/pihole-FTL || exit $?
/usr/bin/pihole-FTL || ec=$?
fi
# Cleanup if startup failed
if [ -n "${ec}" ] && [ "${ec}" != 0 ]; then
cleanup
exit $ec
fi
echo
fi
@ -65,8 +75,7 @@ stop() {
else
echo "Not running"
fi
# Run post-stop script, which does cleanup among runtime files
sh "${PI_HOLE_SCRIPT_DIR}/pihole-FTL-poststop.sh"
cleanup
echo
}
@ -84,6 +93,9 @@ status() {
### main logic ###
# catch sudden termination
trap 'cleanup; exit 1' INT HUP TERM ABRT
# Get FTL's PID file path
FTL_PID_FILE="$(getFTLPIDFile)"