~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to utopic/etc/init.d/chef-client

  • Committer: Dimitri John Ledkov
  • Date: 2014-11-19 12:58:41 UTC
  • Revision ID: dimitri.j.ledkov@intel.com-20141119125841-98dr37roy8dvcv3b
auto update

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /bin/sh
2
 
### BEGIN INIT INFO
3
 
# Provides:           chef-client
4
 
# Required-Start:     $remote_fs $network
5
 
# Required-Stop:      $remote_fs $network
6
 
# Default-Start:      2 3 4 5
7
 
# Default-Stop:       0 1 6
8
 
# Short-Description:  Start a chef-client.
9
 
### END INIT INFO
10
 
#
11
 
# Copyright (c) 2009-2010 Opscode, Inc, <legal@opscode.com>
12
 
#
13
 
# chef-client         Startup script for chef-client.
14
 
# chkconfig: - 99 02
15
 
# description: starts up chef-client in daemon mode.
16
 
 
17
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
18
 
DAEMON=$(which chef-client)
19
 
NAME=chef-client
20
 
DESC=chef-client
21
 
PIDFILE=/var/run/chef/client.pid
22
 
 
23
 
test -x $DAEMON || exit 1
24
 
 
25
 
. /lib/lsb/init-functions
26
 
 
27
 
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
28
 
 
29
 
if [ ! -d /var/run/chef ]; then
30
 
  mkdir /var/run/chef
31
 
fi
32
 
 
33
 
DAEMON_OPTS="-d -P $PIDFILE -c $CONFIG -i $INTERVAL -s $SPLAY"
34
 
 
35
 
if [ ! -z $LOGFILE ]; then
36
 
  DAEMON_OPTS="${DAEMON_OPTS} -L $LOGFILE"
37
 
fi
38
 
 
39
 
running_pid() {
40
 
  pid=$1
41
 
  name=$2
42
 
  [ -z "$pid" ] && return 1
43
 
  [ ! -d /proc/$pid ] &&  return 1
44
 
  cmd=`awk '/Name:/ {print $2}' /proc/$pid/status`
45
 
  [ "$cmd" != "$name" ] &&  return 1
46
 
  return 0
47
 
}
48
 
 
49
 
running() {
50
 
  [ ! -f "$PIDFILE" ] && return 1
51
 
  pid=`cat $PIDFILE`
52
 
  running_pid $pid ruby || return 1
53
 
  return 0
54
 
}
55
 
 
56
 
start_server() {
57
 
  if [ -z "$DAEMONUSER" ] ; then
58
 
    start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS
59
 
  errcode=$?
60
 
  else
61
 
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
62
 
      --chuid $DAEMONUSER \
63
 
      --exec $DAEMON -- $DAEMON_OPTS
64
 
    errcode=$?
65
 
  fi
66
 
  return $errcode
67
 
}
68
 
 
69
 
stop_server() {
70
 
   if [ -z "$DAEMONUSER" ] ; then
71
 
     killproc -p $PIDFILE $DAEMON
72
 
     errcode=$?
73
 
   else
74
 
     start-stop-daemon --stop --quiet --pidfile $PIDFILE \
75
 
       --user $DAEMONUSER \
76
 
       --exec $DAEMON
77
 
     errcode=$?
78
 
   fi
79
 
   return $errcode
80
 
}
81
 
 
82
 
reload_server() {
83
 
  if [ -z "$DAEMONUSER" ] ; then
84
 
     killproc -p $PIDFILE $DAEMON -HUP
85
 
     errcode=$?
86
 
   else
87
 
     start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE \
88
 
       --user $DAEMONUSER \
89
 
       --exec $DAEMON
90
 
     errcode=$?
91
 
   fi
92
 
   return $errcode
93
 
}
94
 
 
95
 
run_server() {
96
 
  if [ -z "$DAEMONUSER" ] ; then
97
 
     killproc -p $PIDFILE $DAEMON -USR1
98
 
     errcode=$?
99
 
   else
100
 
     start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE \
101
 
       --user $DAEMONUSER \
102
 
       --exec $DAEMON
103
 
     errcode=$?
104
 
   fi
105
 
   return $errcode
106
 
}
107
 
 
108
 
force_stop() {
109
 
  [ ! -e "$PIDFILE" ] && return
110
 
  if running ; then
111
 
    /bin/kill -15 $pid
112
 
    sleep "$DIETIME"s
113
 
    if running ; then
114
 
      /bin/kill -9 $pid
115
 
      sleep "$DIETIME"s
116
 
      if running ; then
117
 
        echo "Cannot kill $NAME (pid=$pid)!"
118
 
        exit 1
119
 
      fi
120
 
    fi
121
 
  fi
122
 
  rm -f $PIDFILE
123
 
}
124
 
 
125
 
case "$1" in
126
 
  start)
127
 
    log_daemon_msg "Starting $DESC " "$NAME"
128
 
    if running ;  then
129
 
        log_progress_msg "apparently already running"
130
 
        log_end_msg 0
131
 
        exit 0
132
 
    fi
133
 
    if start_server ; then
134
 
        [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time
135
 
        if  running ;  then
136
 
            log_end_msg 0
137
 
        else
138
 
            log_end_msg 1
139
 
        fi
140
 
    else
141
 
        log_end_msg 1
142
 
    fi
143
 
    ;;
144
 
  stop)
145
 
    log_daemon_msg "Stopping $DESC" "$NAME"
146
 
    if running ; then
147
 
      errcode=0
148
 
      stop_server || errcode=$?
149
 
      log_end_msg $errcode
150
 
    else
151
 
      log_progress_msg "apparently not running"
152
 
      log_end_msg 0
153
 
      exit 0
154
 
    fi
155
 
    ;;
156
 
  force-stop)
157
 
    $0 stop
158
 
    if running; then
159
 
      log_daemon_msg "Stopping (force) $DESC" "$NAME"
160
 
      errcode=0
161
 
      force_stop || errcode=$?
162
 
      log_end_msg $errcode
163
 
    fi
164
 
    ;;
165
 
  restart|force-reload)
166
 
    log_daemon_msg "Restarting $DESC" "$NAME"
167
 
    errcode=0
168
 
    if running ; then
169
 
      stop_server || errcode=$?
170
 
      [ -n "$DIETIME" ] && sleep $DIETIME
171
 
    fi
172
 
    start_server || errcode=$?
173
 
    [ -n "$STARTTIME" ] && sleep $STARTTIME
174
 
    running || errcode=$?
175
 
    log_end_msg $errcode
176
 
    ;;
177
 
  status)
178
 
    log_daemon_msg "Checking status of $DESC" "$NAME"
179
 
    if running ;  then
180
 
      log_progress_msg "running"
181
 
      log_end_msg 0
182
 
    else
183
 
      log_progress_msg "apparently not running"
184
 
      log_end_msg 1
185
 
      exit 3
186
 
    fi
187
 
    ;;
188
 
  reload)
189
 
    if running; then
190
 
      log_daemon_msg "Reloading $DESC" "$NAME"
191
 
      errcode=0
192
 
      reload_server || errcode=$?
193
 
      log_end_msg $errcode
194
 
    fi
195
 
    ;;
196
 
  run)
197
 
    if running; then
198
 
      log_daemon_msg "Triggering run of $DESC" "$NAME"
199
 
      errcode=0
200
 
      run_server || errcode=$?
201
 
      log_end_msg $errcode
202
 
    fi
203
 
    ;;
204
 
  *)
205
 
    N=/etc/init.d/$NAME
206
 
    echo "Usage: $N {start|stop|force-stop|restart|force-reload|status|run}" >&2
207
 
    exit 1
208
 
    ;;
209
 
esac
210
 
 
211
 
exit 0
212