79 lines
2.7 KiB
Plaintext
79 lines
2.7 KiB
Plaintext
|
#!/bin/sh
|
||
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||
|
# contributor license agreements. See the NOTICE file distributed with
|
||
|
# this work for additional information regarding copyright ownership.
|
||
|
# The ASF licenses this file to You 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: solr
|
||
|
# Required-Start: $remote_fs $syslog
|
||
|
# Required-Stop: $remote_fs $syslog
|
||
|
# Default-Start: 2 3 4 5
|
||
|
# Default-Stop: 0 1 6
|
||
|
# Description: Controls Apache Solr as a Service
|
||
|
### END INIT INFO
|
||
|
|
||
|
# Example of a very simple *nix init script that delegates commands to the bin/solr script
|
||
|
# Typical usage is to do:
|
||
|
#
|
||
|
# cp bin/init.d/solr /etc/init.d/solr
|
||
|
# chmod 755 /etc/init.d/solr
|
||
|
# chown root:root /etc/init.d/solr
|
||
|
# update-rc.d solr defaults
|
||
|
# update-rc.d solr enable
|
||
|
|
||
|
# Where you extracted the Solr distribution bundle
|
||
|
SOLR_INSTALL_DIR="{{ solr_server_dir }}"
|
||
|
|
||
|
if [ ! -d "$SOLR_INSTALL_DIR" ]; then
|
||
|
echo "$SOLR_INSTALL_DIR not found! Please check the SOLR_INSTALL_DIR setting in your $0 script."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Path to an include file that defines environment specific settings to override default
|
||
|
# variables used by the bin/solr script. It's highly recommended to define this script so
|
||
|
# that you can keep the Solr binary files separated from live files (pid, logs, index data, etc)
|
||
|
# see bin/solr.in.sh for an example
|
||
|
SOLR_ENV="/etc/default/solr.in.sh"
|
||
|
|
||
|
if [ ! -f "$SOLR_ENV" ]; then
|
||
|
echo "$SOLR_ENV not found! Please check the SOLR_ENV setting in your $0 script."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Specify the user to run Solr as; if not set, then Solr will run as root.
|
||
|
# Running Solr as root is not recommended for production environments
|
||
|
RUNAS="solr"
|
||
|
|
||
|
# verify the specified run as user exists
|
||
|
runas_uid="`id -u "$RUNAS"`"
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "User $RUNAS not found! Please create the $RUNAS user before running this script."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
case "$1" in
|
||
|
start|stop|restart|status)
|
||
|
SOLR_CMD="$1"
|
||
|
;;
|
||
|
*)
|
||
|
echo "Usage: $0 {start|stop|restart|status}"
|
||
|
exit
|
||
|
esac
|
||
|
|
||
|
if [ -n "$RUNAS" ]; then
|
||
|
su -c "SOLR_INCLUDE=\"$SOLR_ENV\" \"$SOLR_INSTALL_DIR/bin/solr\" $SOLR_CMD" - "$RUNAS"
|
||
|
else
|
||
|
SOLR_INCLUDE="$SOLR_ENV" "$SOLR_INSTALL_DIR/bin/solr" "$SOLR_CMD"
|
||
|
fi
|