This repository has been archived by the owner on Jul 8, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.d_iam
executable file
·148 lines (136 loc) · 4.13 KB
/
init.d_iam
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#! /bin/sh -e
### BEGIN INIT INFO
# Provides: iam
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: iam daemon
# Description: iam statuses daemon
### END INIT INFO
# Author: Rowan Thorpe <[email protected]>
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH='/sbin:/usr/sbin:/bin:/usr/bin'
DESC='iam statuses daemon'
NAME='iam'
DAEMON='/usr/bin/iamd.l'
PIDFILE="/var/run/${NAME}/${NAME}.pid"
SCRIPTNAME="/etc/init.d/$NAME"
# override the below settings in /etc/default/iam
DAEMON_ARGS=''
RUN_DAEMON='no'
USER='iam'
GROUP='iam'
# Exit if the package is not installed
test -x "$DAEMON" || exit 0
# Read configuration variable file if it is present
if test -r "/etc/default/$NAME"; then
. "/etc/default/$NAME" || { printf 'Failed to source /etc/default/%s\n' "$NAME"; exit 1; }
fi
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions || { printf 'Failed to source /lib/lsb/init-functions\n'; exit 1; }
#
# Function that starts the daemon/service
#
do_start() {
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
[ -e /var/run/$NAME ] || \
install -d -o$USER -g$GROUP -m755 /var/run/$NAME
[ -e /var/run/${NAME}/statuses ] || \
install -d -o$USER -g$GROUP -m755 /var/run/${NAME}/statuses
start-stop-daemon --quiet --start --pidfile "$PIDFILE" --exec "$DAEMON" --test \
--chuid "${USER}:${GROUP}" >/dev/null || return 1
start-stop-daemon --quiet --start --background --make-pidfile --pidfile "$PIDFILE" --exec "$DAEMON" \
--chuid "${USER}:${GROUP}" -- $DAEMON_ARGS || return 2
}
#
# Function that stops the daemon/service
#
do_stop() {
start-stop-daemon --quiet --stop --retry=TERM/30/KILL/5 --remove-pidfile --pidfile "$PIDFILE"
RETVAL=$?
! test 2 -eq $RETVAL || return 2
start-stop-daemon --quiet --stop --oknodo --retry=0/30/KILL/5 --remove-pidfile --pidfile "$PIDFILE"
! test 2 -eq $? || return 2
rm -f "$PIDFILE"
return "$RETVAL"
}
#
# Function that stops then starts the daemon/service
#
do_restart() {
do_stop
case "$?" in
0|1)
do_start || false # both $? = 1 (old proc still running) and $? > 1 (failed to start) -> 1
;;
*)
false # (failed to stop)
;;
esac
}
do_rotatelogs() {
sudo -u "$USER" -g "$GROUP" "$DAEMON" rotate-logs
}
#
# Function that sends a SIGHUP to the daemon/service
#
#do_reload() {
# start-stop-daemon --stop --signal 1 --quiet --pidfile "$PIDFILE" --exec "$DAEMON"
#}
case "$1" in
start)
if ! test 'yes' = "$RUN_DAEMON"; then
log_action_msg "Not starting $NAME (Disabled in /etc/default/$NAME)."
exit 0
fi
#if test -z "$DAEMON_ARGS"; then
# log_action_msg "Not starting $NAME (\$DAEMON_ARGS must be set in /etc/default/$NAME)."
# exit 0
#fi
log_daemon_msg "Starting $DESC" "$NAME"
do_start
case $? in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case $? in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
status)
status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
exit $?
;;
#reload|force-reload)
# log_daemon_msg "Reloading $DESC" "$NAME"
# do_reload
# log_end_msg $?
# ;;
#restart)
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_restart
log_end_msg $?
;;
rotate-logs)
log_daemon_msg "Rotating logs for $DESC" "$NAME"
do_rotatelogs
log_end_msg $?
;;
*)
#printf 'Usage: %s {start|stop|status|restart|reload|rotate-logs}\n' "$scriptname" >&2
printf 'Usage: %s {start|stop|status|restart|force-reload|rotate-logs}\n' "$scriptname" >&2
exit 3
;;
esac
: