diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2015-05-09 17:56:45 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2015-05-11 09:44:06 -0500 |
commit | a15fa1a3b12a5372c1b3c8d5df7e489648bef913 (patch) | |
tree | 1a30f9aab44612a238a0529794c51fc34b2517de /sh | |
parent | 0198affc742297b6e203bbcecc14436682119cc7 (diff) |
Rework supervisor integration framework
The original way of doing this allowed users to change the supervisor in
conf.d/*. This changes this so that the supervisor setup can be done in
the service script itself.
Diffstat (limited to 'sh')
-rw-r--r-- | sh/openrc-run.sh.in | 44 | ||||
-rw-r--r-- | sh/start-stop-daemon.sh | 8 |
2 files changed, 41 insertions, 11 deletions
diff --git a/sh/openrc-run.sh.in b/sh/openrc-run.sh.in index 4d286b2a..67e47b75 100644 --- a/sh/openrc-run.sh.in +++ b/sh/openrc-run.sh.in @@ -125,6 +125,42 @@ _status() fi } +# Template start / stop / status functions +# These functions select the appropriate function to call from the +# supervisor modules +start() +{ + local func=ssd_start + case "$supervisor" in + ?*) + ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" + ;; + esac + $func +} + +stop() +{ + local func=ssd_stop + case "$supervisor" in + ?*) + ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" + ;; + esac + $func +} + +status() +{ + local func=ssd_status + case "$supervisor" in + ?*) + ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon" + ;; + esac + $func +} + yesno $RC_DEBUG && set -x _conf_d=${RC_SERVICE%/*}/../conf.d @@ -146,14 +182,8 @@ unset _conf_d # Load any system overrides sourcex -e "@SYSCONFDIR@/rc.conf" -# load a service supervisor +# load service supervisor functions sourcex "@LIBEXECDIR@/sh/start-stop-daemon.sh" -if [ -n "$rc_supervisor" ]; then - if ! sourcex -e "@LIBEXECDIR@/sh/${rc_supervisor}.sh"; then - ewarn "$rc_supervisor is an invalid value for rc_supervisor" - ewarn "Using the default." - fi -fi # Set verbose mode if yesno "${rc_verbose:-$RC_VERBOSE}"; then diff --git a/sh/start-stop-daemon.sh b/sh/start-stop-daemon.sh index aae67920..6a3e2050 100644 --- a/sh/start-stop-daemon.sh +++ b/sh/start-stop-daemon.sh @@ -1,8 +1,8 @@ -# Default start / stop / status functions +# start / stop / status functions for start-stop-daemon # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Released under the 2-clause BSD license. -start() +ssd_start() { [ -n "$command" ] || return 0 @@ -45,7 +45,7 @@ start() return 1 } -stop() +ssd_stop() { local startcommand="$(service_get_value "command")" local startpidfile="$(service_get_value "pidfile")" @@ -65,7 +65,7 @@ stop() eend $? "Failed to stop $RC_SVCNAME" } -status() +ssd_status() { _status } |