File: puppet

package info (click to toggle)
puppet-agent 8.10.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 27,392 kB
  • sloc: ruby: 286,820; sh: 492; xml: 116; makefile: 88; cs: 68
file content (44 lines) | stat: -rwxr-xr-x 1,085 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/sbin/sh

. /lib/svc/share/smf_include.sh

[ -z "${SMF_FMRI}" ] && exit "$SMF_EXIT_ERR"

CONF_FILE=/etc/puppetlabs/puppet/puppet.conf
[ ! -f "${CONF_FILE}" ] && exit "$SMF_EXIT_ERR_CONFIG"

PUPPET=/opt/puppetlabs/bin/puppet

case "$1" in
start)
  exec "$PUPPET" agent
  ;;

stop)
  # stop sends sigterm first followed by sigkill
  # smf_kill_contract <CTID> TERM 1 30
  # sends sigterm to all process in ctid and will continue
  # to do so for 30 seconds with interval of 5 seconds
  # smf_kill_contract <CTID> KILL 1
  # continues until all processes are killed.
  # svcs -p <fmri> lists all processes in the contract.
  # http://bnsmb.de/solaris/My_Little_SMF_FAQ.html
  ctid=`svcprop -p restarter/contract "$SMF_FMRI"`
  if [ -n "$ctid" ]; then
    smf_kill_contract "$ctid" TERM 1 30
    ret=$?
    [ "$ret" -eq 1 ] && exit "$SMF_EXIT_ERR_FATAL"

    if [ "$ret" -eq 2 ] ; then
      smf_kill_contract "$ctid" KILL 1
      [ $? -ne 0 ] && exit "$SMF_EXIT_ERR_FATAL"
    fi
  fi
  ;;
*)
  echo "Usage: $0 {start|stop}";
  exit "$SMF_EXIT_ERR_FATAL"
  ;;
esac
exit "$SMF_EXIT_OK"