Allow services to define which extra commands require the service to be started
This commit is contained in:
parent
82df7e4584
commit
16ad975b2d
@ -29,8 +29,16 @@ command_args=${dnsmasq_args}
|
|||||||
pidfile=/var/run/dnsmasq.pid
|
pidfile=/var/run/dnsmasq.pid
|
||||||
required_files=/usr/local/etc/dnsmasq.conf
|
required_files=/usr/local/etc/dnsmasq.conf
|
||||||
|
|
||||||
|
extra_started_commands="reload"
|
||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
provide dns
|
provide dns
|
||||||
need localmount net
|
need localmount net
|
||||||
after bootmisc
|
after bootmisc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
ebegin "Reloading ${SVCNAME}"
|
||||||
|
start-stop-daemon --signal SIGHUP --pidfile "${pidfile}"
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
@ -27,7 +27,7 @@ command=/usr/sbin/named
|
|||||||
command_args=${named_args}
|
command_args=${named_args}
|
||||||
pidfile=/var/run/named/pid
|
pidfile=/var/run/named/pid
|
||||||
name="Domain Name server"
|
name="Domain Name server"
|
||||||
extra_commands="reload"
|
extra_started_commands="reload"
|
||||||
|
|
||||||
namedb=/etc/namedb
|
namedb=/etc/namedb
|
||||||
named_uid=${named_uid:-bind}
|
named_uid=${named_uid:-bind}
|
||||||
|
@ -58,15 +58,16 @@ if [ "${RC_SYS}" = "VPS" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# If $svcdir is still mounted, preserve it if we can
|
# If $svcdir is still mounted, preserve it if we can
|
||||||
|
|
||||||
mnt=$(mountinfo --node "${RC_SVCDIR}")
|
mnt=$(mountinfo --node "${RC_SVCDIR}")
|
||||||
if [ -n "${mnt}" -a -w "${RC_LIBDIR}" ]; then
|
if [ -n "${mnt}" -a -w "${RC_LIBDIR}" ]; then
|
||||||
f_opts="-m -c"
|
f_opts="-m -c"
|
||||||
[ "${RC_UNAME}" = "Linux" ] && f_opts="-c"
|
[ "${RC_UNAME}" = "Linux" ] && f_opts="-c"
|
||||||
|
if type fuser >/dev/null 2>&1; then
|
||||||
if [ -n "$(fuser ${f_opts} "${svcdir}" 2>/dev/null)" ]; then
|
if [ -n "$(fuser ${f_opts} "${svcdir}" 2>/dev/null)" ]; then
|
||||||
fuser -k ${f_opts} "${svcdir}" >/dev/null 2>&1
|
fuser -k ${f_opts} "${svcdir}" >/dev/null 2>&1
|
||||||
sleep 2
|
sleep 2
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
cp -p "${RC_SVCDIR}"/deptree "${RC_SVCDIR}"/depconfig \
|
cp -p "${RC_SVCDIR}"/deptree "${RC_SVCDIR}"/depconfig \
|
||||||
"${RC_SVCDIR}"/softlevel "${RC_SVCDIR}"/nettree \
|
"${RC_SVCDIR}"/softlevel "${RC_SVCDIR}"/nettree \
|
||||||
"${RC_SVCDIR}"/rc.log \
|
"${RC_SVCDIR}"/rc.log \
|
||||||
|
@ -144,7 +144,8 @@ fi
|
|||||||
|
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
# See if we have the required function and run it
|
# See if we have the required function and run it
|
||||||
for _cmd in describe start stop ${extra_commands:-${opts}}; do
|
for _cmd in describe start stop ${extra_commands:-${opts}} \
|
||||||
|
${extra_started_commands}; do
|
||||||
if [ "${_cmd}" = "$1" ]; then
|
if [ "${_cmd}" = "$1" ]; then
|
||||||
if type "$1" >/dev/null 2>&1; then
|
if type "$1" >/dev/null 2>&1; then
|
||||||
# If we're in the background, we may wish to fake some
|
# If we're in the background, we may wish to fake some
|
||||||
@ -159,6 +160,16 @@ while [ -n "$1" ]; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
# Check to see if we need to be started before we can run
|
||||||
|
# this command
|
||||||
|
for _cmd in ${extra_started_commands}; do
|
||||||
|
if [ "${_cmd}" = "$1" ]; then
|
||||||
|
if ! service_started "${SVCNAME}"; then
|
||||||
|
eerror "${SVCNAME}: cannot \`$1' as it has not been started"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
unset _cmd
|
unset _cmd
|
||||||
if type "$1"_pre >/dev/null 2>&1; then
|
if type "$1"_pre >/dev/null 2>&1; then
|
||||||
"$1"_pre || exit $?
|
"$1"_pre || exit $?
|
||||||
|
Loading…
Reference in New Issue
Block a user