Skip to content

Commit e4a004c

Browse files
committed
Debian package is no longer dependant on java debian package
This decision helps people who want to rollout the oracle java without having an openjdk java installed. * Removed any hard dependency on Java in the debian package * The debian init script does not check for a JAVA_HOME anymore * Changed the debian init script to rely on the pid file instead of the argument name of process * Added a useful error message in case no java binary is available (in elasticsearch shell script) Closes elastic#3304 Closes elastic#3311
1 parent 9e8c42f commit e4a004c

File tree

3 files changed

+18
-24
lines changed

3 files changed

+18
-24
lines changed

bin/elasticsearch

+7-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ fi
8989
if [ -x "$JAVA_HOME/bin/java" ]; then
9090
JAVA="$JAVA_HOME/bin/java"
9191
else
92-
JAVA=java
92+
JAVA=$(which java)
93+
fi
94+
95+
if [ ! -x "$JAVA" ]; then
96+
echo "Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME"
97+
exit 1
9398
fi
9499

95100
if [ -z "$ES_CLASSPATH" ]; then
@@ -169,7 +174,7 @@ while true; do
169174
break
170175
;;
171176
*)
172-
echo "Error parsing arguments!" >&2
177+
echo "Error parsing argument $1!" >&2
173178
exit 1
174179
;;
175180
esac

src/deb/control/control

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
Package: elasticsearch
22
Version: [[version]]
33
Architecture: all
4-
Maintainer: Nicolas Huray <nicolas.huray@gmail.com>
4+
Maintainer: Elasticsearch Team <info@elasticsearch.com>
55
Depends: libc6, adduser
6-
Suggest: java7-runtime-headless | java6-runtime-headless | java7-runtime | java6-runtime
76
Section: web
87
Priority: optional
98
Homepage: http://www.elasticsearch.org/

src/deb/init.d/elasticsearch

+10-20
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ JDK_DIRS="/usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/ja
5151
# Look for the right JVM to use
5252
for jdir in $JDK_DIRS; do
5353
if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
54-
JAVA_HOME="$jdir"
54+
JAVA_HOME="$jdir"
5555
fi
5656
done
5757
export JAVA_HOME
@@ -114,22 +114,17 @@ test -x $DAEMON || exit 0
114114

115115
case "$1" in
116116
start)
117-
if [ -z "$JAVA_HOME" ]; then
118-
log_failure_msg "no JDK found - please set JAVA_HOME"
119-
exit 1
120-
fi
121117

122118
if [ -n "$MAX_LOCKED_MEMORY" -a -z "$ES_HEAP_SIZE" ]; then
123119
log_failure_msg "MAX_LOCKED_MEMORY is set - ES_HEAP_SIZE must also be set"
124120
exit 1
125121
fi
126122

127123
log_daemon_msg "Starting $DESC"
128-
129-
if start-stop-daemon --test --start --pidfile "$PID_FILE" \
130-
--user "$ES_USER" --exec "$JAVA_HOME/bin/java" \
131-
>/dev/null; then
132-
124+
125+
set +e
126+
start-stop-daemon --status --pidfile "$PID_FILE" >/dev/null
127+
if [ "$?" != "0" ]; then
133128
# Prepare environment
134129
mkdir -p "$LOG_DIR" "$DATA_DIR" "$WORK_DIR" && chown "$ES_USER":"$ES_GROUP" "$LOG_DIR" "$DATA_DIR" "$WORK_DIR"
135130
touch "$PID_FILE" && chown "$ES_USER":"$ES_GROUP" "$PID_FILE"
@@ -143,20 +138,18 @@ case "$1" in
143138
fi
144139

145140
# Start Daemon
146-
start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec /bin/bash -- -c "$DAEMON $DAEMON_OPTS"
141+
start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
147142

148143
sleep 1
149-
if start-stop-daemon --test --start --pidfile "$PID_FILE" \
150-
--user "$ES_USER" --exec "$JAVA_HOME/bin/java" \
151-
>/dev/null; then
144+
start-stop-daemon --status --pidfile "$PID_FILE" >/dev/null
145+
if [ "$?" != "0" ]; then
152146
if [ -f "$PID_FILE" ]; then
153147
rm -f "$PID_FILE"
154148
fi
155149
log_end_msg 1
156150
else
157151
log_end_msg 0
158152
fi
159-
160153
else
161154
log_progress_msg "(already running)"
162155
log_end_msg 0
@@ -186,11 +179,8 @@ case "$1" in
186179
;;
187180
status)
188181
set +e
189-
start-stop-daemon --test --start --pidfile "$PID_FILE" \
190-
--user "$ES_USER" --exec "$JAVA_HOME/bin/java" \
191-
>/dev/null 2>&1
192-
if [ "$?" = "0" ]; then
193-
182+
start-stop-daemon --status --pidfile "$PID_FILE" >/dev/null 2>&1
183+
if [ "$?" != "0" ]; then
194184
if [ -f "$PID_FILE" ]; then
195185
log_success_msg "$DESC is not running, but pid file exists."
196186
exit 1

0 commit comments

Comments
 (0)