]> git.ipfire.org Git - people/stevee/network.git/blobdiff - functions.service
6rd: Add documentation.
[people/stevee/network.git] / functions.service
index b1a9cd83fc08cde2f8c6ab0a9385f79921409740..97de2c907dbddf6fc3b2fa060761a46a9165fbaa 100644 (file)
 
 function service_start() {
        local name=${1}
-       shift
-
        assert isset name
 
-       systemctl start ${name}.service
+       systemctl start ${name}
+
+       # Check, if the service was successfully started and
+       # return a proper exit code.
+       service_is_active ${name}
+       local ret=$?
+
+       log INFO "Started service '${name}', code=${ret}."
+
+       return ${ret}
 }
 
 function service_stop() {
        local name=${1}
-       shift
-
        assert isset name
 
-       systemctl stop ${name}.service
+       systemctl stop ${name}
 }
 
 function service_restart() {
        local name=${1}
-       shift
-
        assert isset name
 
-       systemctl restart ${name}.service
+       systemctl restart ${name}
 }
 
 function service_reload() {
        local name=${1}
-       shift
-
        assert isset name
 
        if service_status ${name}; then
-               systemctl reload ${name}.service
+               systemctl reload ${name}
                return $?
        else
                log WARNING "Cannot reload service '${name}' which is currently not running."
@@ -62,10 +63,24 @@ function service_reload() {
 
 function service_status() {
        local name=${1}
-       shift
+       assert isset name
 
+       systemctl status ${name} >/dev/null 2>&1
+       return $?
+}
+
+function service_is_active() {
+       local name=${1}
        assert isset name
 
-       systemctl status ${name}.service >/dev/null 2>&1
+       systemctl is-active ${name}.service >/dev/null 2>&1
        return $?
 }
+
+function service_get_exitcode() {
+       local name=${1}
+       assert isset name
+
+       local output=$(systemctl show ${name} --property="ExecMainStatus")
+       cli_get_val "${output}"
+}