--- mcore-src/trunk/mcore-tools/daemon/client/include/system.client.class 2013/05/08 12:57:23 2061 +++ mcore-src/trunk/mcore-tools/daemon/client/include/system.client.class 2013/05/10 10:45:18 2075 @@ -69,19 +69,25 @@ help_system_service() { + mecho "get system.service [command] [service]" + mecho " Status information of system services." + mecho " Commands:" + mecho " status - prints status of given service" + mecho " enabled - check whether a service was enabled" + mecho " runlevel - print current system runlevel" + mecho mecho "set system.service [command] [service] [opts]" mecho " Controls system services." mecho " Commands:" - mecho " status - prints status of given service" - mecho " start - starts given service" - mecho " stop - stops given service" - mecho " restart - restart given service" - mecho " reload - reloads given service if possible" - mecho " add - adds a service to default runlevels" - mecho " del - deletes a service from all runlevels" + mecho " start - starts given service" + mecho " stop - stops given service" + mecho " restart - restart given service" + mecho " reload - reloads given service if possible" + mecho " add - adds a service to default runlevels" + mecho " del - deletes a service from all runlevels" } -helper_system_service_sysvinit() +helper_set_system_service_sysvinit() { local command="$1" local service="$2" @@ -101,14 +107,13 @@ stop) /etc/rc.d/init.d/"${service}" stop ;; restart) /etc/rc.d/init.d/"${service}" restart ;; reload) /etc/rc.d/init.d/"${service}" reload ;; - status) /etc/rc.d/init.d/"${service}" status ;; add) rc-config add "${service}" ;; del) rc-config del "${service}" ;; *) help_system_service && return ;; esac } -helper_system_service_systemd() +helper_set_system_service_systemd() { local command="$1" local service="$2" @@ -128,7 +133,6 @@ stop) systemctl stop "${service}" ;; restart) systemctl try-restart "${service}" ;; reload) systemctl reload-or-try-restart "${service}" ;; - status) systemctl status "${service}" ;; add) systemctl enable "${service}" ;; del) systemctl disable "${service}" ;; *) help_system_service && return ;; @@ -139,9 +143,63 @@ { if [[ -x $(type -P systemctl) ]] then - helper_system_service_systemd $* + helper_set_system_service_systemd $* + else + helper_set_system_service_sysvinit $* + fi +} + +helper_get_system_service_sysvinit() +{ + local command="$1" + local service="$2" + + [[ -z ${command} ]] && help_system_service && return 1 + [[ -z ${service} ]] && help_system_service && return 1 + + if [[ ! -x ${MROOT}/etc/rc.d/init.d/${service} ]] + then + eecho "Service '${service}' unkown!" + return 1 + fi + + case "${command}" in + status) /etc/rc.d/init.d/"${service}" status ;; + enabled) rc-config show "${service}" ;; + runlevel) eecho "function on todo" ;; + *) help_system_service && return ;; + esac +} + +helper_get_system_service_systemd() +{ + local command="$1" + local service="$2" + + [[ -z ${command} ]] && help_system_service && return 1 + [[ -z ${service} ]] && help_system_service && return 1 + + if [[ -n $(systemctl status ${service} | grep 'Reason: No such file or directory') ]] + then + eecho "Service '${service}' unkown!" + return 1 + fi + + case "${command}" in + status) systemctl status "${service}" ;; + enabled) systemctl is-enabled "${service}"; rvecho "$?" ;; + runlevel) rvecho "$(readline ${MROOT}/etc/systemd/system/default.target)" ;; + *) help_system_service && return ;; + esac +} + +get_system_service() +{ + if [[ -x $(type -P systemctl) ]] + then + helper_get_system_service_systemd $* else - helper_system_service_sysvinit $* + helper_get_system_service_sysvinit $* fi }