From a1d18d4e49e79f7f53623c40892e21f2e97197ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Date: Mon, 17 Feb 2025 21:50:05 +0100 Subject: [PATCH] Add fix script --- bin/fix | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 bin/fix diff --git a/bin/fix b/bin/fix new file mode 100755 index 0000000..cc70b2e --- /dev/null +++ b/bin/fix @@ -0,0 +1,47 @@ +#!/bin/bash +# +# Try to fix a service +# +# By default, the problem is "solved" the Microsoft way +# (stop and start). +# To do something more intelligent, create a +# /federated/services//fix +# script. + +if [ "$#" != 1 ]; then + echo Usage: $0 service + exit 1 +fi + +SERVICE="$1" + +if /federated/bin/check ${SERVICE}; then + echo "${SERVICE} doesn't seem to be broken" + exit 0 +fi + +/federated/bin/stop ${SERVICE} +/federated/bin/start ${SERVICE} + +if /federated/bin/check ${SERVICE}; then + echo "${SERVICE} was (probably) fixed by a restart" + exit 0 +fi + +[ -e /federated/services/${SERVICE}/fix ] && . /federated/services/${SERVICE}/fix + +if /federated/bin/check ${SERVICE}; then + echo "${SERVICE} was (probably) fixed by the service fix script" + exit 0 +fi + +/federated/bin/stop ${SERVICE} +/federated/bin/start ${SERVICE} + +if /federated/bin/check ${SERVICE}; then + echo "${SERVICE} was (probably) fixed by restarting after running the fix script" + exit 0 +fi + +echo "${SERVICE} is still broken. Please improve the fix script." +exit 1