~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to vivid/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