Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -45,10 +45,13 @@ TARGETS:=${SCRIPTS:S/.init.mk//:S/.service.mk//} .for file in ${SCRIPTS} #.info ${file} .include "${file}" +.if !target(${file:S/.service.mk//}) +${file:S/.service.mk//}: _service +.endif .endfor .include "init.mk" .MAIN: ${TARGETS} Index: daemon.starter.mk ================================================================== --- daemon.starter.mk +++ daemon.starter.mk @@ -7,10 +7,10 @@ .for target in ${LOCAL_TARGETS} ${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice.*/SERVICE/} .USE test -z "$${DAEMON_$@_ENABLE}" || { \ echo "MRC:$@> Starting service."; \ test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ - daemon -c -u ${DAEMON_$@_USER:Uroot} -r -P /var/run/daemon.$@.pid ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + daemon -c -u ${DAEMON_$@_USER:Uroot} -r -P /var/run/daemon.$@.pid ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS} ${DAEMON$@_FOREGROUND}; \ } .endfor .undef LOCAL_TARGETS Index: dbus.service.mk ================================================================== --- dbus.service.mk +++ dbus.service.mk @@ -1,8 +1,10 @@ DAEMON_dbus_COMMAND?=/usr/local/bin/dbus-daemon DAEMON_dbus_ENABLE?=no DAEMON_dbus_FLAGS?=--system +DAEMON_dbus_BACKGROUND?=--fork +DAEMON_dbus_FOREGROUND?=--nofork dbus: _service test -z "$${DAEMON_$@_ENABLE}" || { \ /usr/local/bin/dbus-uuidgen --ensure; \ mkdir -p /var/run/dbus; \ Index: devd.service.mk ================================================================== --- devd.service.mk +++ devd.service.mk @@ -1,6 +1,6 @@ DAEMON_devd_COMMAND?=/sbin/devd DAEMON_devd_ENABLE?=yes -DAEMON_devd_FLAGS?=-dq +DAEMON_devd_FOREGROUND?=-dq devd: _earlyservice test -n "$${DAEMON_$@_ENABLE}" || sysctl hw.bus.devctl_disable=1 Index: dhcpcd.service.mk ================================================================== --- dhcpcd.service.mk +++ dhcpcd.service.mk @@ -1,5 +1,6 @@ DAEMON_dhcpcd_COMMAND?=/sbin/dhcpcd DAEMON_dhcpcd_ENABLE?=no -DAEMON_dhcpcd_FLAGS?=-B +DAEMON_dhcpcd_BACKGROUND?=-b +DAEMON_dhcpcd_FOREGROUND?=-B dhcpcd: _service NETWORK SERVICE # mount -> SERVICE, cleanvar -> SERVICE Index: dntpd.service.mk ================================================================== --- dntpd.service.mk +++ dntpd.service.mk @@ -1,4 +1,4 @@ DAEMON_dntpd_COMMAND?=/usr/sbin/dntpd -DAEMON_dntpd_FLAGS?=-F +DAEMON_dntpd_FOREGROUND?=-F dntpd: _service NETWORK Index: plain.starter.mk ================================================================== --- plain.starter.mk +++ plain.starter.mk @@ -7,10 +7,10 @@ .for target in ${LOCAL_TARGETS} ${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice.*/SERVICE/} .USE test -z "$${DAEMON_$@_ENABLE}" || { \ echo "MRC:$@> Starting service."; \ test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ - chroot -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} / ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + chroot -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} / ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS} ${DAEMON_$@_BACKGROUND}; \ } .endfor .undef LOCAL_TARGETS Index: slim.service.mk ================================================================== --- slim.service.mk +++ slim.service.mk @@ -1,5 +1,6 @@ DAEMON_slim_COMMAND?=/usr/local/bin/slim DAEMON_slim_ENABLE?=no +DAEMON_slim_BACKGROUND?=-d slim: _service dbus rm -f /var/run/slim.auth Index: smartd.service.mk ================================================================== --- smartd.service.mk +++ smartd.service.mk @@ -1,8 +1,9 @@ DAEMON_smartd_COMMAND?=/usr/local/sbin/smartd DAEMON_smartd_ENABLE?=no -DAEMON_smartd_FLAGS?=-c /usr/local/etc/smartd.conf -n +DAEMON_smartd_FLAGS?=-c /usr/local/etc/smartd.conf +DAEMON_smartd_FOREGROUND?=-n smartd: _service test -z "$${DAEMON_$@_ENABLE}" || \ test -f /usr/local/etc/smartd.conf || { \ echo "MRC:$@> smartd requires config file to start." ; \ Index: sndiod.service.mk ================================================================== --- sndiod.service.mk +++ sndiod.service.mk @@ -1,5 +1,3 @@ DAEMON_sndiod_COMMAND?=/usr/local/bin/sndiod DAEMON_sndiod_ENABLE?=no -DAEMON_sndiod_FLAGS?=-c 0:7 -j off -s default -m mon -s monitor -d - -sndiod: _service +DAEMON_sndiod_FLAGS?=-c 0:7 -j off -s default -m mon -s monitor Index: svc.starter.mk ================================================================== --- svc.starter.mk +++ svc.starter.mk @@ -7,10 +7,10 @@ .for target in ${LOCAL_TARGETS} ${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice/SERVICE/} .USE test -z "$${DAEMON_$@_ENABLE}" || { \ echo "MRC:$@> Starting service."; \ test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ - svc -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} init $@ ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + svc -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} init $@ ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS} ${DAEMON_$@_FOREGROUND}; \ } .endfor .undef LOCAL_TARGETS Index: watchdogd.service.mk ================================================================== --- watchdogd.service.mk +++ watchdogd.service.mk @@ -1,8 +1,8 @@ DAEMON_watchdogd_COMMAND?=/usr/sbin/watchdogd DAEMON_watchdogd_ENABLE?=no -DAEMON_watchdogd_FLAGS?=-d +DAEMON_watchdogd_FOREGROUND?=-d .if empty(:!sysctl -qn debug.watchdog || exit 0!) DAEMON_watchdogd_ENABLE=no .endif