d8511a3d7c 2022-05-30 1: OTHER_TARGETS+=_service_pre
d8511a3d7c 2022-05-30 2:
d8511a3d7c 2022-05-30 3: STARTER?=svc
d8511a3d7c 2022-05-30 4:
04f7295047 2022-05-30 5: _service_check: .USEBEFORE
d8511a3d7c 2022-05-30 6: # check whether service is enabled
4d5a9b2632 2022-05-30 7: if [ -z "$${DAEMON_$@_ENABLE}" -a -z "${FORCE}" ]; then \
4d5a9b2632 2022-05-30 8: exit 0 ;\
cbff0b494f 2023-08-18 9: fi ;\
cbff0b494f 2023-08-18 10: for CMD in ${DAEMON_$@_COMMAND}; do \
cbff0b494f 2023-08-18 11: if [ -x $${CMD} ]; then \
cbff0b494f 2023-08-18 12: export CMD ;\
cbff0b494f 2023-08-18 13: break ;\
cbff0b494f 2023-08-18 14: fi ;\
cbff0b494f 2023-08-18 15: done ;\
cbff0b494f 2023-08-18 16: echo $${CMD}
d8511a3d7c 2022-05-30 17:
04f7295047 2022-05-30 18: _service_pre: .USEBEFORE
d8511a3d7c 2022-05-30 19: # kldload modules if any
cbff0b494f 2023-08-18 20: echo "MRC:$@> Starting service." ;\
d8511a3d7c 2022-05-30 21: if [ -n "${DAEMON_$@_MODULES}" ]; then \
d8511a3d7c 2022-05-30 22: kldload -n ${DAEMON_$@_MODULES}; \
04f7295047 2022-05-30 23: fi
04f7295047 2022-05-30 24:
04f7295047 2022-05-30 25: _service_post_exit: .USE
04f7295047 2022-05-30 26: echo "MRC:${@:S/_exit//}> stopped."
d8511a3d7c 2022-05-30 27:
d8511a3d7c 2022-05-30 28: .for starter_source in ${:!find /etc/mrc -name '*.starter.mk'!:S/\/etc\/mrc\///}
d8511a3d7c 2022-05-30 29: starter:=${starter_source:S/.starter.mk$//}
d8511a3d7c 2022-05-30 30: Starter:=${starter:tu}
d8511a3d7c 2022-05-30 31:
d8511a3d7c 2022-05-30 32: OTHER_TARGETS:=${OTHER_TARGETS} _service_${starter} _service_${starter}_exit _service_${starter}_status
d8511a3d7c 2022-05-30 33:
04f7295047 2022-05-30 34: _SERVICE_${Starter}:=_service_pre DAEMON _service_${starter} _service_check
04f7295047 2022-05-30 35: _EARLYSERVICE_${Starter}:=_service_pre SERVICE _service_${starter} _service_check
04f7295047 2022-05-30 36: _SERVICE_${Starter}_EXIT:=_service_${starter}_exit _service_post_exit
d8511a3d7c 2022-05-30 37:
d8511a3d7c 2022-05-30 38: .if "${STARTER}" == "${starter}"
04f7295047 2022-05-30 39: _SERVICE:=_service_pre DAEMON _service_${starter} _service_check
04f7295047 2022-05-30 40: _EARLYSERVICE:=_service_pre SERVICE _service_${starter} _service_check
04f7295047 2022-05-30 41: _SERVICE_EXIT:=_service_${starter}_exit _service_post_exit
d8511a3d7c 2022-05-30 42: .endif
d8511a3d7c 2022-05-30 43:
d8511a3d7c 2022-05-30 44: .export
d8511a3d7c 2022-05-30 45: .include "${starter_source}"
d8511a3d7c 2022-05-30 46: .endfor