aboutsummaryrefslogtreecommitdiff
path: root/lib/util/svc.bash
diff options
context:
space:
mode:
Diffstat (limited to 'lib/util/svc.bash')
-rw-r--r--lib/util/svc.bash107
1 files changed, 78 insertions, 29 deletions
diff --git a/lib/util/svc.bash b/lib/util/svc.bash
index fd65e4c..1b1ecbc 100644
--- a/lib/util/svc.bash
+++ b/lib/util/svc.bash
@@ -34,11 +34,18 @@ svc_disable() {
local service=$1
- case "${BASHTARD_PLATFORM[key]}" in
- linux-gentoo) set -- /sbin/rc-update del "$service" ;;
- linux-*) set -- systemctl disable "$service" ;;
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-update del "$service" ;;
+ systemd) set -- systemctl disable "$service" ;;
+ *)
+ crit "$system" "No service manager support to disable with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to enable for ${BASHTARD_PLATFORM[key]}"
return 1
esac
@@ -53,7 +60,16 @@ svc_enable() {
local service=$1
local rc
- case "${BASHTARD_PLATFORM[key]}" in
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-update add "$service" ;;
+ systemd) set -- systemctl enable "$service" ;;
+ *)
+ crit "$system" "No service manager support to enable with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
freebsd)
rc="$(printf '%s_enable="YES"' "$service")"
@@ -63,12 +79,9 @@ svc_enable() {
fi
return 0
-
;;
- linux-gentoo) set -- /sbin/rc-update add "$service" ;;
- linux-*) set -- systemctl enable "$service" ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to enable for ${BASHTARD_PLATFORM[key]}"
return 1
esac
@@ -82,12 +95,21 @@ svc_reload() {
local service=$1
- case "${BASHTARD_PLATFORM[key]}" in
- freebsd) set -- service "$service" reload ;;
- linux-gentoo) set -- /sbin/rc-service "$service" reload ;;
- linux-*) set -- systemctl reload "$service" ;;
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-service "$service" reload ;;
+ systemd) set -- systemctl reload "$service" ;;
+ *)
+ crit "$system" "No service manager support to reload with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
+ freebsd)
+ set -- service "$service" reload
+ ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to reload for ${BASHTARD_PLATFORM[key]}"
return 1
esac
@@ -101,12 +123,21 @@ svc_restart() {
local service=$1
- case "${BASHTARD_PLATFORM[key]}" in
- freebsd) set -- service "$service" restart ;;
- linux-gentoo) set -- /sbin/rc-service "$service" restart ;;
- linux-*) set -- systemctl restart "$service" ;;
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-service "$service" restart ;;
+ systemd) set -- systemctl restart "$service" ;;
+ *)
+ crit "$system" "No service manager support to restart with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
+ freebsd)
+ set -- service "$service" restart
+ ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to restart for ${BASHTARD_PLATFORM[key]}"
return 1
esac
@@ -120,12 +151,21 @@ svc_start() {
local service=$1
- case "${BASHTARD_PLATFORM[key]}" in
- freebsd) set -- service "$service" start ;;
- linux-gentoo) set -- /sbin/rc-service "$service" start ;;
- linux-*) set -- systemctl start "$service" ;;
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-service "$service" start ;;
+ systemd) set -- systemctl start "$service" ;;
+ *)
+ crit "$system" "No service manager support to start with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
+ freebsd)
+ set -- service "$service" start
+ ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to start for ${BASHTARD_PLATFORM[key]}"
return 1
esac
@@ -139,12 +179,21 @@ svc_stop() {
local service=$1
- case "${BASHTARD_PLATFORM[key]}" in
- freebsd) set -- service "$service" stop ;;
- linux-gentoo) set -- /sbin/rc-service "$service" stop ;;
- linux-*) set -- systemctl stop "$service" ;;
+ case "${BASHTARD_PLATFORM[os]}" in
+ linux)
+ case "${BASHTARD_PLATFORM[init]}" in
+ openrc) set -- /sbin/rc-service "$service" stop ;;
+ systemd) set -- systemctl stop "$service" ;;
+ *)
+ crit "$system" "No service manager support to stop with ${BASHTARD_PLATFORM[init]}"
+ return 1
+ esac
+ ;;
+ freebsd)
+ set -- service "$service" stop
+ ;;
*)
- crit "$system" "No service manager configured for ${BASHTARD_PLATFORM[key]}"
+ crit "$system" "No service manager support to stop for ${BASHTARD_PLATFORM[key]}"
return 1
esac