57b9e601a9
- remove the has_executables variable since it isn't used. - Convert the conditional calls to ewend/vewend to a single call to veend. - Always call eend after all scripts are executed passing the appropriate error code. Because of this change, you will see only an overall status when starting or stopping local unless you are using verbose mode.
85 lines
2.1 KiB
Plaintext
85 lines
2.1 KiB
Plaintext
#!@SBINDIR@/openrc-run
|
|
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
|
# Released under the 2-clause BSD license.
|
|
|
|
description="Executes user programs in @SYSCONFDIR@/local.d"
|
|
|
|
depend()
|
|
{
|
|
after *
|
|
keyword -timeout
|
|
}
|
|
|
|
start()
|
|
{
|
|
ebegin "Starting local"
|
|
|
|
local file has_errors=0 retval
|
|
eindent
|
|
for file in @SYSCONFDIR@/local.d/*.start; do
|
|
if [ -x "${file}" ]; then
|
|
vebegin "Executing \"${file}\""
|
|
"${file}" 2>&1 >/dev/null
|
|
retval=$?
|
|
if [ ${retval} -ne 0 ]; then
|
|
has_errors=1
|
|
fi
|
|
veend ${retval} "Execution of \"${file}\" failed."
|
|
fi
|
|
done
|
|
eoutdent
|
|
|
|
if command -v local_start >/dev/null 2>&1; then
|
|
ewarn "\"@SYSCONFDIR@/conf.d/local\" should be removed."
|
|
ewarn "Please move the code from the local_start function"
|
|
ewarn "to executable scripts with an .start extension"
|
|
ewarn "in \"@SYSCONFDIR@/local.d\""
|
|
local_start
|
|
fi
|
|
|
|
eend ${has_errors}
|
|
|
|
# We have to end with a zero exit code, because a failed execution
|
|
# of an executable @SYSCONFDIR@/local.d/*.start file shouldn't result in
|
|
# marking the local service as failed. Otherwise we are unable to
|
|
# execute any executable @SYSCONFDIR@/local.d/*.stop file, because a failed
|
|
# marked service cannot be stopped (and the stop function would
|
|
# actually call the executable @SYSCONFDIR@/local.d/*.stop file(s)).
|
|
return 0
|
|
}
|
|
|
|
stop()
|
|
{
|
|
ebegin "Stopping local"
|
|
|
|
local file has_errors=0 retval
|
|
eindent
|
|
for file in @SYSCONFDIR@/local.d/*.stop; do
|
|
if [ -x "${file}" ]; then
|
|
vebegin "Executing \"${file}\""
|
|
"${file}" 2>&1 >/dev/null
|
|
retval=$?
|
|
if [ ${retval} -ne 0 ]; then
|
|
has_errors=1
|
|
fi
|
|
veend ${retval} "Execution of \"${file}\" failed."
|
|
fi
|
|
done
|
|
eoutdent
|
|
|
|
if command -v local_stop >/dev/null 2>&1; then
|
|
ewarn "\"@SYSCONFDIR@/conf.d/local\" should be removed."
|
|
ewarn "Please move the code from the local_stop function"
|
|
ewarn "to executable scripts with an .stop extension"
|
|
ewarn "in \"@SYSCONFDIR@/local.d\""
|
|
local_stop
|
|
fi
|
|
|
|
eend ${has_errors}
|
|
|
|
# An executable @SYSCONFDIR@/local.d/*.stop file which failed with a
|
|
# non-zero exit status is not a reason to mark this service
|
|
# as failed, therefore we have to end with a zero exit code.
|
|
return 0
|
|
}
|