blob: ccdfe716a42b5069e0129fec7b054aa95ffd19e3 (
plain)
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
149
150
151
152
153
154
155
156
157
158
159
160
|
#!/bin/sh -e
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
### BEGIN INIT INFO
# Provides: couchdb
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Apache CouchDB init script
# Description: Apache CouchDB init script for the database server.
### END INIT INFO
SCRIPT_OK=0
SCRIPT_ERROR=1
DESCRIPTION="database server"
NAME=couchdb
SCRIPT_NAME=`basename $0`
COUCHDB=/usr/bin/couchdb
CONFIGURATION_FILE=/etc/default/couchdb
RUN_DIR=/var/run/couchdb
LSB_LIBRARY=/lib/lsb/init-functions
if test ! -x $COUCHDB; then
exit $SCRIPT_ERROR
fi
if test -r $CONFIGURATION_FILE; then
. $CONFIGURATION_FILE
fi
log_daemon_msg () {
# Dummy function to be replaced by LSB library.
echo $@
}
log_end_msg () {
# Dummy function to be replaced by LSB library.
if test "$1" != "0"; then
echo "Error with $DESCRIPTION: $NAME"
fi
return $1
}
if test -r $LSB_LIBRARY; then
. $LSB_LIBRARY
fi
run_command () {
command="$1"
if test -n "$COUCHDB_OPTIONS"; then
command="$command $COUCHDB_OPTIONS"
fi
if test -n "$COUCHDB_USER"; then
if su $COUCHDB_USER -c "$command"; then
return $SCRIPT_OK
else
return $SCRIPT_ERROR
fi
else
if $command; then
return $SCRIPT_OK
else
return $SCRIPT_ERROR
fi
fi
}
start_couchdb () {
# Start Apache CouchDB as a background process.
mkdir -p "$RUN_DIR"
chown -R "$COUCHDB_USER" "$RUN_DIR"
command="$COUCHDB -b"
if test -n "$COUCHDB_STDOUT_FILE"; then
command="$command -o $COUCHDB_STDOUT_FILE"
fi
if test -n "$COUCHDB_STDERR_FILE"; then
command="$command -e $COUCHDB_STDERR_FILE"
fi
if test -n "$COUCHDB_RESPAWN_TIMEOUT"; then
command="$command -r $COUCHDB_RESPAWN_TIMEOUT"
fi
run_command "$command" > /dev/null
}
stop_couchdb () {
# Stop the running Apache CouchDB process.
run_command "$COUCHDB -d" > /dev/null
pkill -u couchdb
# always return true even if no remaining couchdb procs got killed
/bin/true
}
display_status () {
# Display the status of the running Apache CouchDB process.
run_command "$COUCHDB -s"
}
parse_script_option_list () {
# Parse arguments passed to the script and take appropriate action.
case "$1" in
start)
log_daemon_msg "Starting $DESCRIPTION" $NAME
if start_couchdb; then
log_end_msg $SCRIPT_OK
else
log_end_msg $SCRIPT_ERROR
fi
;;
stop)
log_daemon_msg "Stopping $DESCRIPTION" $NAME
if stop_couchdb; then
log_end_msg $SCRIPT_OK
else
log_end_msg $SCRIPT_ERROR
fi
;;
restart|force-reload)
log_daemon_msg "Restarting $DESCRIPTION" $NAME
if stop_couchdb; then
if start_couchdb; then
log_end_msg $SCRIPT_OK
else
log_end_msg $SCRIPT_ERROR
fi
else
log_end_msg $SCRIPT_ERROR
fi
;;
status)
display_status
;;
*)
cat << EOF >&2
Usage: $SCRIPT_NAME {start|stop|restart|force-reload|status}
EOF
exit $SCRIPT_ERROR
;;
esac
}
parse_script_option_list $@
|