@@ -, +, @@ --- Makefile | 2 +- conf.d/Makefile | 2 +- conf.d/local | 18 ------------------ init.d/local.in | 26 +++++++++++++++++++++----- local.d/Makefile | 6 ++++++ local.d/README | 9 +++++++++ mk/sys.mk | 1 + 7 files changed, 39 insertions(+), 25 deletions(-) delete mode 100644 conf.d/local create mode 100644 local.d/Makefile create mode 100644 local.d/README --- a/Makefile +++ a/Makefile @@ -4,7 +4,7 @@ include Makefile.inc -SUBDIR= conf.d etc init.d man scripts sh src +SUBDIR= conf.d etc init.d local.d man scripts sh src # Build our old net foo or not _OLDNET_SH= case "${MKOLDNET}" in \ --- a/conf.d/Makefile +++ a/conf.d/Makefile @@ -1,5 +1,5 @@ DIR= ${CONFDIR} -CONF= bootmisc fsck hostname local localmount network staticroute urandom +CONF= bootmisc fsck hostname localmount network staticroute urandom TARGETS+= network staticroute CLEANFILES+= network staticroute --- a/conf.d/local +++ a/conf.d/local @@ -1,18 +0,0 @@ -# Here is where you can put anything you need to start -# that there is not an init script for. - -local_start() { - # This is a good place to load any misc programs - # on startup (use &>/dev/null to hide output) - - # We should always return 0 - return 0 -} - -local_stop() { - # This is a good place to unload any misc. - # programs you started above. - - # We should always return 0 - return 0 -} --- a/init.d/local.in +++ a/init.d/local.in @@ -2,7 +2,7 @@ # Copyright (c) 2007-2008 Roy Marples # All rights reserved. Released under the 2-clause BSD license. -description="Executes user commands in /etc/conf.d/local" +description="Executes user programs in @SYSCONFDIR@/local.d" depend() { @@ -12,22 +12,38 @@ depend() start() { - ebegin "Starting local" + einfo "Starting local" + + local file + for file in @SYSCONFDIR@/local.d/*start ; do + [ -x $file ] && $file + done if type 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 scripts ending in start in @SYSCONFDIR@/local.d" local_start fi - eend $? "Failed to start local" + return 0 } stop() { - ebegin "Stopping local" + einfo "Stopping local" + + local file + for file in @SYSCONFDIR@/local.d/*stop; do + [ -x $file ] && $file + done if type local_start >/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 scripts ending in stop in @SYSCONFDIR@/local.d" local_stop fi - eend $? "Failed to stop local" + return 0 } --- a/local.d/Makefile +++ a/local.d/Makefile @@ -0,0 +1,6 @@ +DIR= ${LOCALDIR} +CONF= README + +MK= ../mk +include ${MK}/os.mk +include ${MK}/scripts.mk --- a/local.d/README +++ a/local.d/README @@ -0,0 +1,9 @@ +This directory should contain programs or scripts which are to be run +when the local service is started or stopped. + +If a file in this directory is executable and the name ends with start, +it will be run when the local service is started. If a file is +executable and the name ends with stop, it will be run when the local +service is stopped. + +All files are processed in lexical order. --- a/mk/sys.mk +++ a/mk/sys.mk @@ -21,6 +21,7 @@ PICFLAG?= -fPIC SYSCONFDIR?= ${PREFIX}/etc INITDIR?= ${SYSCONFDIR}/init.d CONFDIR?= ${SYSCONFDIR}/conf.d +LOCALDIR?= ${SYSCONFDIR}/local.d BINDIR?= ${PREFIX}/sbin BINMODE?= 0755 --