Hex Artifact Content
Logged in as anonymous

Artifact b2c2cec8721e485229fd6432ca90c495800870a8a9ab23289bcb3115a69c5c2c:


0000: 4f 54 48 45 52 5f 54 41 52 47 45 54 53 2b 3d 5f  OTHER_TARGETS+=_
0010: 73 65 72 76 69 63 65 5f 70 72 65 0a 0a 53 54 41  service_pre..STA
0020: 52 54 45 52 3f 3d 73 76 63 0a 0a 5f 73 65 72 76  RTER?=svc.._serv
0030: 69 63 65 5f 63 68 65 63 6b 3a 20 2e 55 53 45 42  ice_check: .USEB
0040: 45 46 4f 52 45 0a 09 23 20 63 68 65 63 6b 20 77  EFORE..# check w
0050: 68 65 74 68 65 72 20 73 65 72 76 69 63 65 20 69  hether service i
0060: 73 20 65 6e 61 62 6c 65 64 0a 09 69 66 20 5b 20  s enabled..if [ 
0070: 2d 7a 20 22 24 24 7b 44 41 45 4d 4f 4e 5f 24 40  -z "$${DAEMON_$@
0080: 5f 45 4e 41 42 4c 45 7d 22 20 2d 61 20 2d 7a 20  _ENABLE}" -a -z 
0090: 22 24 7b 46 4f 52 43 45 7d 22 20 5d 3b 20 74 68  "${FORCE}" ]; th
00a0: 65 6e 20 5c 0a 09 09 65 78 69 74 20 30 20 3b 5c  en \...exit 0 ;\
00b0: 0a 09 66 69 0a 09 23 20 63 68 65 63 6b 20 66 6f  ..fi..# check fo
00c0: 72 20 66 69 72 73 74 20 70 72 65 73 65 6e 74 20  r first present 
00d0: 65 78 65 63 75 74 61 62 6c 65 0a 09 66 6f 72 20  executable..for 
00e0: 43 4f 4d 4d 41 4e 44 20 69 6e 20 24 7b 44 41 45  COMMAND in ${DAE
00f0: 4d 4f 4e 5f 24 40 5f 43 4f 4d 4d 41 4e 44 7d 3b  MON_$@_COMMAND};
0100: 20 64 6f 20 5c 0a 09 09 69 66 20 5b 20 2d 78 20   do \...if [ -x 
0110: 24 24 7b 43 4f 4d 4d 41 4e 44 7d 20 5d 3b 20 74  $${COMMAND} ]; t
0120: 68 65 6e 20 5c 0a 09 09 09 65 78 70 6f 72 74 20  hen \....export 
0130: 43 4d 44 3d 22 24 7b 43 4f 4d 4d 41 4e 44 7d 22  CMD="${COMMAND}"
0140: 20 3b 5c 0a 09 09 09 62 72 65 61 6b 20 3b 5c 0a   ;\....break ;\.
0150: 09 09 66 69 20 3b 5c 0a 09 64 6f 6e 65 0a 09 23  ..fi ;\..done..#
0160: 20 62 61 69 6c 20 6f 75 74 20 69 66 20 62 69 6e   bail out if bin
0170: 61 72 79 20 6e 6f 74 20 66 6f 75 6e 64 0a 09 69  ary not found..i
0180: 66 20 5b 20 2d 7a 20 24 24 7b 43 4d 44 7d 20 5d  f [ -z $${CMD} ]
0190: 3b 20 74 68 65 6e 20 5c 0a 09 09 4d 52 43 3a 24  ; then \...MRC:$
01a0: 40 3e 20 45 78 65 63 75 74 61 62 6c 65 20 6e 6f  @> Executable no
01b0: 74 20 66 6f 75 6e 64 2e 0a 09 09 65 78 69 74 20  t found....exit 
01c0: 30 20 3b 5c 0a 09 66 69 0a 09 23 20 63 68 65 63  0 ;\..fi..# chec
01d0: 6b 20 66 6f 72 20 72 74 70 72 69 6f 2f 69 64 70  k for rtprio/idp
01e0: 72 69 6f 0a 09 69 66 20 5b 20 2d 6e 20 22 24 24  rio..if [ -n "$$
01f0: 7b 44 41 45 4d 4f 4e 5f 24 40 5f 49 44 50 52 49  {DAEMON_$@_IDPRI
0200: 4f 7d 22 20 5d 3b 20 74 68 65 6e 20 5c 0a 09 09  O}" ]; then \...
0210: 65 78 70 6f 72 74 20 43 4d 44 3d 22 2f 75 73 72  export CMD="/usr
0220: 2f 73 62 69 6e 2f 69 64 70 72 69 6f 20 24 24 7b  /sbin/idprio $${
0230: 44 41 45 4d 4f 4e 5f 24 40 5f 49 44 50 52 49 4f  DAEMON_$@_IDPRIO
0240: 7d 20 24 24 7b 43 4d 44 7d 22 20 3b 5c 0a 09 65  } $${CMD}" ;\..e
0250: 6c 69 66 20 5b 20 2d 6e 20 22 24 24 7b 44 41 45  lif [ -n "$${DAE
0260: 4d 4f 4e 5f 24 40 5f 52 54 50 52 49 4f 7d 22 20  MON_$@_RTPRIO}" 
0270: 5d 3b 20 74 68 65 6e 20 5c 0a 09 09 65 78 70 6f  ]; then \...expo
0280: 72 74 20 43 4d 44 3d 22 2f 75 73 72 2f 73 62 69  rt CMD="/usr/sbi
0290: 6e 2f 72 74 70 72 69 6f 20 24 24 7b 44 41 45 4d  n/rtprio $${DAEM
02a0: 4f 4e 5f 24 40 5f 52 54 50 52 49 4f 7d 20 24 24  ON_$@_RTPRIO} $$
02b0: 7b 43 4d 44 7d 22 20 3b 5c 0a 09 66 69 0a 0a 5f  {CMD}" ;\..fi.._
02c0: 73 65 72 76 69 63 65 5f 70 72 65 3a 20 2e 55 53  service_pre: .US
02d0: 45 42 45 46 4f 52 45 0a 09 23 20 6b 6c 64 6c 6f  EBEFORE..# kldlo
02e0: 61 64 20 6d 6f 64 75 6c 65 73 20 69 66 20 61 6e  ad modules if an
02f0: 79 0a 09 65 63 68 6f 20 22 4d 52 43 3a 24 40 3e  y..echo "MRC:$@>
0300: 20 53 74 61 72 74 69 6e 67 20 73 65 72 76 69 63   Starting servic
0310: 65 2e 22 20 3b 5c 0a 09 69 66 20 5b 20 2d 6e 20  e." ;\..if [ -n 
0320: 22 24 7b 44 41 45 4d 4f 4e 5f 24 40 5f 4d 4f 44  "${DAEMON_$@_MOD
0330: 55 4c 45 53 7d 22 20 5d 3b 20 74 68 65 6e 20 5c  ULES}" ]; then \
0340: 0a 09 09 6b 6c 64 6c 6f 61 64 20 2d 6e 20 24 7b  ...kldload -n ${
0350: 44 41 45 4d 4f 4e 5f 24 40 5f 4d 4f 44 55 4c 45  DAEMON_$@_MODULE
0360: 53 7d 3b 20 5c 0a 09 66 69 0a 0a 5f 73 65 72 76  S}; \..fi.._serv
0370: 69 63 65 5f 70 6f 73 74 5f 65 78 69 74 3a 20 2e  ice_post_exit: .
0380: 55 53 45 0a 09 65 63 68 6f 20 22 4d 52 43 3a 24  USE..echo "MRC:$
0390: 7b 40 3a 53 2f 5f 65 78 69 74 2f 2f 7d 3e 20 73  {@:S/_exit//}> s
03a0: 74 6f 70 70 65 64 2e 22 0a 0a 2e 66 6f 72 20 73  topped."...for s
03b0: 74 61 72 74 65 72 5f 73 6f 75 72 63 65 20 69 6e  tarter_source in
03c0: 20 24 7b 3a 21 66 69 6e 64 20 2f 65 74 63 2f 6d   ${:!find /etc/m
03d0: 72 63 20 2d 6e 61 6d 65 20 27 2a 2e 73 74 61 72  rc -name '*.star
03e0: 74 65 72 2e 6d 6b 27 21 3a 53 2f 5c 2f 65 74 63  ter.mk'!:S/\/etc
03f0: 5c 2f 6d 72 63 5c 2f 2f 2f 7d 0a 73 74 61 72 74  \/mrc\///}.start
0400: 65 72 3a 3d 24 7b 73 74 61 72 74 65 72 5f 73 6f  er:=${starter_so
0410: 75 72 63 65 3a 53 2f 2e 73 74 61 72 74 65 72 2e  urce:S/.starter.
0420: 6d 6b 24 2f 2f 7d 0a 53 74 61 72 74 65 72 3a 3d  mk$//}.Starter:=
0430: 24 7b 73 74 61 72 74 65 72 3a 74 75 7d 0a 0a 4f  ${starter:tu}..O
0440: 54 48 45 52 5f 54 41 52 47 45 54 53 3a 3d 24 7b  THER_TARGETS:=${
0450: 4f 54 48 45 52 5f 54 41 52 47 45 54 53 7d 20 5f  OTHER_TARGETS} _
0460: 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72 74 65  service_${starte
0470: 72 7d 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74  r} _service_${st
0480: 61 72 74 65 72 7d 5f 65 78 69 74 20 5f 73 65 72  arter}_exit _ser
0490: 76 69 63 65 5f 24 7b 73 74 61 72 74 65 72 7d 5f  vice_${starter}_
04a0: 73 74 61 74 75 73 0a 0a 5f 53 45 52 56 49 43 45  status.._SERVICE
04b0: 5f 24 7b 53 74 61 72 74 65 72 7d 3a 3d 5f 73 65  _${Starter}:=_se
04c0: 72 76 69 63 65 5f 70 72 65 20 44 41 45 4d 4f 4e  rvice_pre DAEMON
04d0: 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72   _service_${star
04e0: 74 65 72 7d 20 5f 73 65 72 76 69 63 65 5f 63 68  ter} _service_ch
04f0: 65 63 6b 0a 5f 45 41 52 4c 59 53 45 52 56 49 43  eck._EARLYSERVIC
0500: 45 5f 24 7b 53 74 61 72 74 65 72 7d 3a 3d 5f 73  E_${Starter}:=_s
0510: 65 72 76 69 63 65 5f 70 72 65 20 53 45 52 56 49  ervice_pre SERVI
0520: 43 45 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74  CE _service_${st
0530: 61 72 74 65 72 7d 20 5f 73 65 72 76 69 63 65 5f  arter} _service_
0540: 63 68 65 63 6b 0a 5f 53 45 52 56 49 43 45 5f 24  check._SERVICE_$
0550: 7b 53 74 61 72 74 65 72 7d 5f 45 58 49 54 3a 3d  {Starter}_EXIT:=
0560: 5f 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72 74  _service_${start
0570: 65 72 7d 5f 65 78 69 74 20 5f 73 65 72 76 69 63  er}_exit _servic
0580: 65 5f 70 6f 73 74 5f 65 78 69 74 0a 0a 2e 69 66  e_post_exit...if
0590: 20 22 24 7b 53 54 41 52 54 45 52 7d 22 20 3d 3d   "${STARTER}" ==
05a0: 20 22 24 7b 73 74 61 72 74 65 72 7d 22 0a 5f 53   "${starter}"._S
05b0: 45 52 56 49 43 45 3a 3d 5f 73 65 72 76 69 63 65  ERVICE:=_service
05c0: 5f 70 72 65 20 44 41 45 4d 4f 4e 20 5f 73 65 72  _pre DAEMON _ser
05d0: 76 69 63 65 5f 24 7b 73 74 61 72 74 65 72 7d 20  vice_${starter} 
05e0: 5f 73 65 72 76 69 63 65 5f 63 68 65 63 6b 0a 5f  _service_check._
05f0: 45 41 52 4c 59 53 45 52 56 49 43 45 3a 3d 5f 73  EARLYSERVICE:=_s
0600: 65 72 76 69 63 65 5f 70 72 65 20 53 45 52 56 49  ervice_pre SERVI
0610: 43 45 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74  CE _service_${st
0620: 61 72 74 65 72 7d 20 5f 73 65 72 76 69 63 65 5f  arter} _service_
0630: 63 68 65 63 6b 0a 5f 53 45 52 56 49 43 45 5f 45  check._SERVICE_E
0640: 58 49 54 3a 3d 5f 73 65 72 76 69 63 65 5f 24 7b  XIT:=_service_${
0650: 73 74 61 72 74 65 72 7d 5f 65 78 69 74 20 5f 73  starter}_exit _s
0660: 65 72 76 69 63 65 5f 70 6f 73 74 5f 65 78 69 74  ervice_post_exit
0670: 0a 2e 65 6e 64 69 66 0a 0a 2e 65 78 70 6f 72 74  ..endif...export
0680: 0a 2e 69 6e 63 6c 75 64 65 20 22 24 7b 73 74 61  ..include "${sta
0690: 72 74 65 72 5f 73 6f 75 72 63 65 7d 22 0a 2e 65  rter_source}"..e
06a0: 6e 64 66 6f 72 0a                                ndfor.