Hex Artifact Content
Logged in as anonymous

Artifact aa4d4c11bfad0767884e1c25a41e7f862ab3a592de28e893df1e0e31d62e8427:


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 48 45 43 4b 5f 43 4d 44 20 69 6e 20 24 7b 44  CHECK_CMD in ${D
00f0: 41 45 4d 4f 4e 5f 24 40 5f 43 4f 4d 4d 41 4e 44  AEMON_$@_COMMAND
0100: 7d 3b 20 64 6f 20 5c 0a 09 09 69 66 20 5b 20 2d  }; do \...if [ -
0110: 78 20 24 24 7b 43 48 45 43 4b 5f 43 4d 44 7d 20  x $${CHECK_CMD} 
0120: 5d 3b 20 74 68 65 6e 20 5c 0a 09 09 09 65 78 70  ]; then \....exp
0130: 6f 72 74 20 43 4d 44 3d 22 24 24 7b 43 48 45 43  ort CMD="$${CHEC
0140: 4b 5f 43 4d 44 7d 22 20 3b 5c 0a 09 09 09 62 72  K_CMD}" ;\....br
0150: 65 61 6b 20 3b 5c 0a 09 09 66 69 20 3b 5c 0a 09  eak ;\...fi ;\..
0160: 64 6f 6e 65 0a 09 23 20 62 61 69 6c 20 6f 75 74  done..# bail out
0170: 20 69 66 20 62 69 6e 61 72 79 20 6e 6f 74 20 66   if binary not f
0180: 6f 75 6e 64 0a 09 69 66 20 5b 20 2d 7a 20 24 24  ound..if [ -z $$
0190: 7b 43 4d 44 7d 20 5d 3b 20 74 68 65 6e 20 5c 0a  {CMD} ]; then \.
01a0: 09 09 65 63 68 6f 20 22 4d 52 43 3a 24 40 3e 20  ..echo "MRC:$@> 
01b0: 45 78 65 63 75 74 61 62 6c 65 20 6e 6f 74 20 66  Executable not f
01c0: 6f 75 6e 64 2e 22 20 3b 5c 0a 09 09 65 78 69 74  ound." ;\...exit
01d0: 20 30 20 3b 5c 0a 09 66 69 0a 09 23 20 63 68 65   0 ;\..fi..# che
01e0: 63 6b 20 66 6f 72 20 72 74 70 72 69 6f 2f 69 64  ck for rtprio/id
01f0: 70 72 69 6f 0a 09 69 66 20 5b 20 2d 6e 20 22 24  prio..if [ -n "$
0200: 24 7b 44 41 45 4d 4f 4e 5f 24 40 5f 49 44 50 52  ${DAEMON_$@_IDPR
0210: 49 4f 7d 22 20 5d 3b 20 74 68 65 6e 20 5c 0a 09  IO}" ]; then \..
0220: 09 65 78 70 6f 72 74 20 43 4d 44 3d 22 2f 75 73  .export CMD="/us
0230: 72 2f 73 62 69 6e 2f 69 64 70 72 69 6f 20 24 24  r/sbin/idprio $$
0240: 7b 44 41 45 4d 4f 4e 5f 24 40 5f 49 44 50 52 49  {DAEMON_$@_IDPRI
0250: 4f 7d 20 24 24 7b 43 4d 44 7d 22 20 3b 5c 0a 09  O} $${CMD}" ;\..
0260: 65 6c 69 66 20 5b 20 2d 6e 20 22 24 24 7b 44 41  elif [ -n "$${DA
0270: 45 4d 4f 4e 5f 24 40 5f 52 54 50 52 49 4f 7d 22  EMON_$@_RTPRIO}"
0280: 20 5d 3b 20 74 68 65 6e 20 5c 0a 09 09 65 78 70   ]; then \...exp
0290: 6f 72 74 20 43 4d 44 3d 22 2f 75 73 72 2f 73 62  ort CMD="/usr/sb
02a0: 69 6e 2f 72 74 70 72 69 6f 20 24 24 7b 44 41 45  in/rtprio $${DAE
02b0: 4d 4f 4e 5f 24 40 5f 52 54 50 52 49 4f 7d 20 24  MON_$@_RTPRIO} $
02c0: 24 7b 43 4d 44 7d 22 20 3b 5c 0a 09 66 69 0a 0a  ${CMD}" ;\..fi..
02d0: 5f 73 65 72 76 69 63 65 5f 70 72 65 3a 20 2e 55  _service_pre: .U
02e0: 53 45 42 45 46 4f 52 45 0a 09 23 20 6b 6c 64 6c  SEBEFORE..# kldl
02f0: 6f 61 64 20 6d 6f 64 75 6c 65 73 20 69 66 20 61  oad modules if a
0300: 6e 79 0a 09 65 63 68 6f 20 22 4d 52 43 3a 24 40  ny..echo "MRC:$@
0310: 3e 20 53 74 61 72 74 69 6e 67 20 73 65 72 76 69  > Starting servi
0320: 63 65 2e 22 20 3b 5c 0a 09 69 66 20 5b 20 2d 6e  ce." ;\..if [ -n
0330: 20 22 24 7b 44 41 45 4d 4f 4e 5f 24 40 5f 4d 4f   "${DAEMON_$@_MO
0340: 44 55 4c 45 53 7d 22 20 5d 3b 20 74 68 65 6e 20  DULES}" ]; then 
0350: 5c 0a 09 09 6b 6c 64 6c 6f 61 64 20 2d 6e 20 24  \...kldload -n $
0360: 7b 44 41 45 4d 4f 4e 5f 24 40 5f 4d 4f 44 55 4c  {DAEMON_$@_MODUL
0370: 45 53 7d 3b 20 5c 0a 09 66 69 0a 0a 5f 73 65 72  ES}; \..fi.._ser
0380: 76 69 63 65 5f 70 6f 73 74 5f 65 78 69 74 3a 20  vice_post_exit: 
0390: 2e 55 53 45 0a 09 65 63 68 6f 20 22 4d 52 43 3a  .USE..echo "MRC:
03a0: 24 7b 40 3a 53 2f 5f 65 78 69 74 2f 2f 7d 3e 20  ${@:S/_exit//}> 
03b0: 73 74 6f 70 70 65 64 2e 22 0a 0a 2e 66 6f 72 20  stopped."...for 
03c0: 73 74 61 72 74 65 72 5f 73 6f 75 72 63 65 20 69  starter_source i
03d0: 6e 20 24 7b 3a 21 66 69 6e 64 20 2f 65 74 63 2f  n ${:!find /etc/
03e0: 6d 72 63 20 2d 6e 61 6d 65 20 27 2a 2e 73 74 61  mrc -name '*.sta
03f0: 72 74 65 72 2e 6d 6b 27 21 3a 53 2f 5c 2f 65 74  rter.mk'!:S/\/et
0400: 63 5c 2f 6d 72 63 5c 2f 2f 2f 7d 0a 73 74 61 72  c\/mrc\///}.star
0410: 74 65 72 3a 3d 24 7b 73 74 61 72 74 65 72 5f 73  ter:=${starter_s
0420: 6f 75 72 63 65 3a 53 2f 2e 73 74 61 72 74 65 72  ource:S/.starter
0430: 2e 6d 6b 24 2f 2f 7d 0a 53 74 61 72 74 65 72 3a  .mk$//}.Starter:
0440: 3d 24 7b 73 74 61 72 74 65 72 3a 74 75 7d 0a 0a  =${starter:tu}..
0450: 4f 54 48 45 52 5f 54 41 52 47 45 54 53 3a 3d 24  OTHER_TARGETS:=$
0460: 7b 4f 54 48 45 52 5f 54 41 52 47 45 54 53 7d 20  {OTHER_TARGETS} 
0470: 5f 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72 74  _service_${start
0480: 65 72 7d 20 5f 73 65 72 76 69 63 65 5f 24 7b 73  er} _service_${s
0490: 74 61 72 74 65 72 7d 5f 65 78 69 74 20 5f 73 65  tarter}_exit _se
04a0: 72 76 69 63 65 5f 24 7b 73 74 61 72 74 65 72 7d  rvice_${starter}
04b0: 5f 73 74 61 74 75 73 0a 0a 23 20 68 65 72 65 20  _status..# here 
04c0: 77 65 20 61 72 65 20 69 6e 68 65 72 69 74 69 6e  we are inheritin
04d0: 67 20 70 69 65 63 65 73 20 6f 66 20 64 69 66 66  g pieces of diff
04e0: 65 72 65 6e 74 20 74 61 72 67 65 74 73 20 69 6e  erent targets in
04f0: 74 6f 20 6f 6e 65 20 73 69 6e 67 6c 65 20 74 61  to one single ta
0500: 72 67 65 74 2c 20 73 6f 0a 23 20 65 76 65 72 79  rget, so.# every
0510: 74 68 69 6e 67 20 69 73 20 61 70 70 65 6e 64 65  thing is appende
0520: 64 20 69 6e 20 74 68 65 20 6f 72 64 65 72 2c 20  d in the order, 
0530: 62 75 74 20 67 65 74 73 20 6f 72 67 61 6e 69 7a  but gets organiz
0540: 65 64 20 61 20 6c 69 74 74 6c 65 20 62 69 74 0a  ed a little bit.
0550: 23 20 64 69 66 66 65 72 65 6e 74 6c 79 2c 20 61  # differently, a
0560: 6c 6c 20 74 61 72 67 65 74 73 20 77 69 74 68 20  ll targets with 
0570: 2e 55 53 45 42 45 46 4f 52 45 20 61 72 65 20 61  .USEBEFORE are a
0580: 64 64 65 64 20 62 65 66 6f 72 65 20 63 75 72 72  dded before curr
0590: 65 6e 74 20 74 61 72 67 65 74 0a 23 20 73 63 72  ent target.# scr
05a0: 69 70 74 2c 20 73 6f 20 61 66 74 65 72 20 22 5f  ipt, so after "_
05b0: 73 65 72 76 69 63 65 5f 70 72 65 20 5f 73 65 72  service_pre _ser
05c0: 76 69 63 65 5f 63 68 65 63 6b 22 20 77 65 20 67  vice_check" we g
05d0: 6f 74 20 74 68 61 74 20 6f 72 64 65 72 20 69 6e  ot that order in
05e0: 76 65 72 74 65 64 0a 0a 5f 53 45 52 56 49 43 45  verted.._SERVICE
05f0: 5f 24 7b 53 74 61 72 74 65 72 7d 3a 3d 5f 73 65  _${Starter}:=_se
0600: 72 76 69 63 65 5f 70 72 65 20 44 41 45 4d 4f 4e  rvice_pre DAEMON
0610: 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72   _service_${star
0620: 74 65 72 7d 20 5f 73 65 72 76 69 63 65 5f 63 68  ter} _service_ch
0630: 65 63 6b 0a 5f 45 41 52 4c 59 53 45 52 56 49 43  eck._EARLYSERVIC
0640: 45 5f 24 7b 53 74 61 72 74 65 72 7d 3a 3d 5f 73  E_${Starter}:=_s
0650: 65 72 76 69 63 65 5f 70 72 65 20 53 45 52 56 49  ervice_pre SERVI
0660: 43 45 20 5f 73 65 72 76 69 63 65 5f 24 7b 73 74  CE _service_${st
0670: 61 72 74 65 72 7d 20 5f 73 65 72 76 69 63 65 5f  arter} _service_
0680: 63 68 65 63 6b 0a 5f 53 45 52 56 49 43 45 5f 24  check._SERVICE_$
0690: 7b 53 74 61 72 74 65 72 7d 5f 45 58 49 54 3a 3d  {Starter}_EXIT:=
06a0: 5f 73 65 72 76 69 63 65 5f 24 7b 73 74 61 72 74  _service_${start
06b0: 65 72 7d 5f 65 78 69 74 20 5f 73 65 72 76 69 63  er}_exit _servic
06c0: 65 5f 70 6f 73 74 5f 65 78 69 74 0a 0a 2e 09 69  e_post_exit....i
06d0: 66 20 22 24 7b 53 54 41 52 54 45 52 7d 22 20 3d  f "${STARTER}" =
06e0: 3d 20 22 24 7b 73 74 61 72 74 65 72 7d 22 0a 5f  = "${starter}"._
06f0: 53 45 52 56 49 43 45 3a 3d 5f 73 65 72 76 69 63  SERVICE:=_servic
0700: 65 5f 70 72 65 20 44 41 45 4d 4f 4e 20 5f 73 65  e_pre DAEMON _se
0710: 72 76 69 63 65 5f 24 7b 73 74 61 72 74 65 72 7d  rvice_${starter}
0720: 20 5f 73 65 72 76 69 63 65 5f 63 68 65 63 6b 0a   _service_check.
0730: 5f 45 41 52 4c 59 53 45 52 56 49 43 45 3a 3d 5f  _EARLYSERVICE:=_
0740: 73 65 72 76 69 63 65 5f 70 72 65 20 53 45 52 56  service_pre SERV
0750: 49 43 45 20 5f 73 65 72 76 69 63 65 5f 24 7b 73  ICE _service_${s
0760: 74 61 72 74 65 72 7d 20 5f 73 65 72 76 69 63 65  tarter} _service
0770: 5f 63 68 65 63 6b 0a 5f 53 45 52 56 49 43 45 5f  _check._SERVICE_
0780: 45 58 49 54 3a 3d 5f 73 65 72 76 69 63 65 5f 24  EXIT:=_service_$
0790: 7b 73 74 61 72 74 65 72 7d 5f 65 78 69 74 20 5f  {starter}_exit _
07a0: 73 65 72 76 69 63 65 5f 70 6f 73 74 5f 65 78 69  service_post_exi
07b0: 74 0a 2e 09 65 6e 64 69 66 0a 0a 2e 09 65 78 70  t...endif....exp
07c0: 6f 72 74 0a 2e 09 69 6e 63 6c 75 64 65 20 22 24  ort...include "$
07d0: 7b 73 74 61 72 74 65 72 5f 73 6f 75 72 63 65 7d  {starter_source}
07e0: 22 0a 2e 65 6e 64 66 6f 72 0a                    "..endfor.