abef2fcb2d
This will make it possible to add support for supervision suites such as runit and s6.
72 lines
1.9 KiB
Bash
72 lines
1.9 KiB
Bash
# Default start / stop / status functions
|
|
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
|
# Released under the 2-clause BSD license.
|
|
|
|
start()
|
|
{
|
|
[ -n "$command" ] || return 0
|
|
|
|
local _background=
|
|
ebegin "Starting ${name:-$RC_SVCNAME}"
|
|
if yesno "${command_background}"; then
|
|
if [ -z "${pidfile}" ]; then
|
|
eend 1 "command_background option used but no pidfile specified"
|
|
return 1
|
|
fi
|
|
if [ -n "${command_args_background}" ]; then
|
|
eend 1 "command_background used with command_args_background"
|
|
return 1
|
|
fi
|
|
_background="--background --make-pidfile"
|
|
fi
|
|
if yesno "$start_inactive"; then
|
|
local _inactive=false
|
|
service_inactive && _inactive=true
|
|
mark_service_inactive
|
|
fi
|
|
eval start-stop-daemon --start \
|
|
--exec $command \
|
|
${procname:+--name} $procname \
|
|
${pidfile:+--pidfile} $pidfile \
|
|
${command_user+--user} $command_user \
|
|
$_background $start_stop_daemon_args \
|
|
-- $command_args $command_args_background
|
|
if eend $? "Failed to start $RC_SVCNAME"; then
|
|
service_set_value "command" "${command}"
|
|
[ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}"
|
|
[ -n "${procname}" ] && service_set_value "procname" "${procname}"
|
|
return 0
|
|
fi
|
|
if yesno "$start_inactive"; then
|
|
if ! $_inactive; then
|
|
mark_service_stopped
|
|
fi
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
stop()
|
|
{
|
|
local startcommand="$(service_get_value "command")"
|
|
local startpidfile="$(service_get_value "pidfile")"
|
|
local startprocname="$(service_get_value "procname")"
|
|
command="${startcommand:-$command}"
|
|
pidfile="${startpidfile:-$pidfile}"
|
|
procname="${startprocname:-$procname}"
|
|
[ -n "$command" -o -n "$procname" -o -n "$pidfile" ] || return 0
|
|
ebegin "Stopping ${name:-$RC_SVCNAME}"
|
|
start-stop-daemon --stop \
|
|
${retry:+--retry} $retry \
|
|
${command:+--exec} $command \
|
|
${procname:+--name} $procname \
|
|
${pidfile:+--pidfile} $pidfile \
|
|
${stopsig:+--signal} $stopsig
|
|
|
|
eend $? "Failed to stop $RC_SVCNAME"
|
|
}
|
|
|
|
status()
|
|
{
|
|
_status
|
|
}
|