Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -1,17 +1,17 @@ .include "/etc/mrc.conf" .export -OTHER_TARGETS:=_daemon _service -DAEMONIZER?=svc +OTHER_TARGETS:=_service _earlyservice +STARTER?=svc -.for daemonizer in ${:!find /etc/mrc -name '*.daemon.mk'!:S/\/etc\/mrc\///} -.include "${daemonizer}" +.for starter in ${:!find /etc/mrc -name '*.starter.mk'!:S/\/etc\/mrc\///} +.include "${starter}" .endfor -.if !target(_daemon) || !target(_service) -.error No daemonizer defined. +.if !target(_service) || !target(_earlyservice) +.error No service handler defined. .endif #.MAKE.JOBS?=2 #.SILENT: @@ -57,14 +57,14 @@ ENABLED=${:!env!:C/=.*//:M*_ENABLE} .for var in ${ENABLED} .if !empty(${var}:tl:Mno) -.info ${var} +#.info ${var} .undef ${var} .endif .endfor .undef ENABLED .unexport-env .export -.info ${:!env!} +#.info ${:!env!} Index: automountd.service ================================================================== --- automountd.service +++ automountd.service @@ -2,8 +2,7 @@ DAEMON_automountd_COMMAND?=/usr/sbin/autmountd DAEMON_automountd_ENABLE?=no DAEMON_automountd_MODULES=autofs -automountd: _daemon # nfsclient -> DAEMON -.export DAEMON_$@_ENABLE +automountd: _service # nfsclient -> DAEMON test -z "$${DAEMON_$@_ENABLE}" || /usr/sbin/automount ADDED daemon.starter.mk Index: daemon.starter.mk ================================================================== --- /dev/null +++ daemon.starter.mk @@ -0,0 +1,15 @@ +LOCAL_TARGETS:=_service_daemon _earlyservice_daemon +OTHER_TARGETS+=${LOCAL_TARGETS} +.if ${STARTER} == "plain" +LOCAL_TARGETS+=_service _earlyservice +.endif + +.for target in ${LOCAL_TARGETS} +${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice.*/SERVICE/} .USE + test -z "$${DAEMON_$@_ENABLE}" || { \ + test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ + daemon -c -u ${DAEMON_$@_USER:Uroot} -P /var/run/daemon.$@.pid ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + } +.endfor + +.undef LOCAL_TARGETS Index: dbus.service ================================================================== --- dbus.service +++ dbus.service @@ -2,11 +2,11 @@ DAEMON_dbus_COMMAND?=/usr/local/bin/dbus-daemon DAEMON_dbus_ENABLE?=no DAEMON_dbus_FLAGS?=--system -dbus: _daemon +dbus: _service .export DAEMON_$@_ENABLE test -z "$${DAEMON_$@_ENABLE}" || { \ /usr/local/bin/dbus-uuidgen --ensure; \ mkdir -p /var/run/dbus; \ } Index: devd.service ================================================================== --- devd.service +++ devd.service @@ -2,7 +2,7 @@ DAEMON_devd_COMMAND?=/sbin/devd DAEMON_devd_ENABLE?=yes DAEMON_devd_FLAGS?=-dq -devd: _service +devd: _earlyservice test -n "$${DAEMON_$@_ENABLE}" || sysctl hw.bus.devctl_disable=1 Index: inetd.service ================================================================== --- inetd.service +++ inetd.service @@ -2,6 +2,6 @@ DAEMON_inetd_COMMAND?=/usr/sbin/inetd DAEMON_inetd_enable?=no DAEMON_inetd_FLAGS?=-C 60 -inetd: _daemon LOGIN +inetd: _service LOGIN Index: node_exporter.service ================================================================== --- node_exporter.service +++ node_exporter.service @@ -5,9 +5,9 @@ DAEMON_node_exporter_LISTEN_ADDRESS?=:9100 DAEMON_node_exporter_TEXTFILE_DIR?=/var/tmp/node_exporter DAEMON_node_exporter_USER?=nobody DAEMON_node_exporter_GROUP?=nobody -node_exporter: _daemon +node_exporter: _service .export DAEMON_$@_ENABLE test -z "$${DAEMON_$@_ENABLE}" || \ install -d -o ${DAEMON_node_exporter_USER} -g ${DAEMON_node_exporter_GROUP} -m1755 ${DAEMON_node_exporter_TEXTFILE_DIR} ADDED plain.starter.mk Index: plain.starter.mk ================================================================== --- /dev/null +++ plain.starter.mk @@ -0,0 +1,15 @@ +LOCAL_TARGETS:=_service_plain _earlyservice_plain +OTHER_TARGETS+=${LOCAL_TARGETS} +.if ${STARTER} == "plain" +LOCAL_TARGETS+=_service _earlyservice +.endif + +.for target in ${LOCAL_TARGETS} +${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice.*/SERVICE/} .USE + test -z "$${DAEMON_$@_ENABLE}" || { \ + test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ + chroot -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} / ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + } +.endfor + +.undef LOCAL_TARGETS Index: rpcbind.service ================================================================== --- rpcbind.service +++ rpcbind.service @@ -2,6 +2,6 @@ DAEMON_rpcbind_COMMAND?=/usr/sbin/rpcbind DAEMON_rpcbind_ENABLE?=no DAEMON_rpcbind_FLAGS?=-d -rpcbind: _service NETWORK syslogd +rpcbind: _earlyservice NETWORK syslogd Index: slim.service ================================================================== --- slim.service +++ slim.service @@ -1,7 +1,7 @@ # vim:ft=make: DAEMON_slim_COMMAND?=/usr/local/bin/slim DAEMON_slim_ENABLE?=no -slim: _daemon dbus +slim: _service dbus rm -f /var/run/slim.auth Index: smartd.service ================================================================== --- smartd.service +++ smartd.service @@ -2,11 +2,11 @@ DAEMON_smartd_COMMAND?=/usr/local/sbin/smartd DAEMON_smartd_ENABLE?=no DAEMON_smartd_FLAGS?=-c /usr/local/etc/smartd.conf -n -smartd: _daemon +smartd: _service .export DAEMON_$@_ENABLE test -z "$${DAEMON_$@_ENABLE}" || \ test -f /usr/local/etc/smartd.conf || { \ echo smartd requires config file to start. ; \ false; \ Index: sndiod.service ================================================================== --- sndiod.service +++ sndiod.service @@ -2,6 +2,6 @@ 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: _daemon +sndiod: _service DELETED svc.daemon.mk Index: svc.daemon.mk ================================================================== --- svc.daemon.mk +++ /dev/null @@ -1,25 +0,0 @@ -LOCAL_TARGETS:=_daemon_svc _service_svc -OTHER_TARGETS+=${LOCAL_TARGETS} -.if ${DAEMONIZER} == "svc" -LOCAL_TARGETS:=${LOCAL_TARGETS} ${LOCAL_TARGETS:S/_svc//} -.endif - -.for target in ${LOCAL_TARGETS} -${target}: ${target:C/_daemon.*/DAEMON/:C/_service.*/SERVICE/} .USE -#.export DAEMON_$@_ENABLE - env | grep $@ - test -z "$${DAEMON_$@_ENABLE}" || { \ - test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ - svc -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} init $@ ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ - } -.endfor - -#_service: .USE -#.export DAEMON_$@_ENABLE -# env | grep $@ -# test -z "$${DAEMON_$@_ENABLE}" || { \ -# test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ -# svc -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} init $@ ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ -# } - -.undef LOCAL_TARGETS ADDED svc.starter.mk Index: svc.starter.mk ================================================================== --- /dev/null +++ svc.starter.mk @@ -0,0 +1,15 @@ +LOCAL_TARGETS:=_service_svc _earlyservice_svc +OTHER_TARGETS+=_service_svc _earlyservice_svc +.if ${STARTER} == "svc" +LOCAL_TARGETS+=_service _earlyservice +.endif + +.for target in ${LOCAL_TARGETS} +${target}: ${target:C/_service.*/DAEMON/:C/_earlyservice/SERVICE/} .USE + test -z "$${DAEMON_$@_ENABLE}" || { \ + test -n "${DAEMON_$@_MODULES}" && kldload -n ${DAEMON_$@_MODULES} || true; \ + svc -u ${DAEMON_$@_USER:Uroot} -g ${DAEMON_$@_GROUP:Uwheel} init $@ ${DAEMON_$@_COMMAND} ${DAEMON_$@_FLAGS}; \ + } +.endfor + +.undef LOCAL_TARGETS Index: syslogd.service ================================================================== --- syslogd.service +++ syslogd.service @@ -2,6 +2,6 @@ DAEMON_syslogd_COMMAND?=/usr/sbin/syslogd DAEMON_syslogd_ENABLE?=yes DAEMON_syslogd_FLAGS?=-ss8cc -syslogd: _service +syslogd: _earlyservice Index: watchdogd.service ================================================================== --- watchdogd.service +++ watchdogd.service @@ -6,6 +6,6 @@ .if empty(:!sysctl -qn debug.watchdog || exit 0!) DAEMON_watchdogd_ENABLE=no .endif -watchdogd: _daemon +watchdogd: _earlyservice