Commit e9aa760c authored by Seblu's avatar Seblu
Browse files

checkservices: Improve UI

parent 8de851f1
Loading
Loading
Loading
Loading
+28 −3
Original line number Diff line number Diff line
@@ -21,6 +21,33 @@

(( $UID != 0 )) && echo 'You need to be root' && exit 1

usage() {
	echo "usage ${0##*/} [options]"
	echo 'options:'
	echo '   -h: this help' >&2
	echo '   -r: restart services' >&2
	echo '   -l: list services' >&2
	echo '   -R: reload services' >&2
	echo "   -n: don't call systemd daemon-reload" >&2
	exit 1
}

while getopts 'hrlRn' opt; do
	case $opt in
		r) systemd_cmd='restart';;
		R) systemd_cmd='reload';;
		n) daemon_reload=false;;
		l) list=true;;
		*) usage;;
	esac
done
shift $((OPTIND - 1));
(( $# > 0 )) && usage

[[ -n "$systemd_cmd" || -n "$list" ]] || usage

[[ $daemon_reload ]] || systemctl --system daemon-reload

declare -a services
services=($(systemctl -t service --full|grep \.service|grep running|sed -rn 's/^(.*\.service).*/\1/p'))

@@ -28,8 +55,6 @@ for svc in "${services[@]}"; do
	pid=$(systemctl show "$svc"|sed -nr 's/^MainPID=(.*)/\1/p')
	if readlink "/proc/$pid/exe"|grep -q '(deleted)'; then
		echo systemctl restart "$svc"
		[[ $1 == '-f' ]] && systemctl restart "$svc"
		[[ $systemd_cmd ]] && systemctl "$systemd_cmd" "$svc"
	fi
done

[[ -t 2 && $1 != '-f' ]] && echo 'Use -f to execute' >&2 || :