blob: 15bb29e0e7360247fd4479d13d96a371e3207898 [file] [log] [blame]
#!/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: tika
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Controls Apache Tika as a Service
### END INIT INFO
# Example of a very simple *nix init script that delegates commands to the bin/tika script
# Typical usage is to do:
#
# cp bin/init.d/tika /etc/init.d/tika
# chmod 755 /etc/init.d/tika
# chown root:root /etc/init.d/tika
# update-rc.d tika defaults
# update-rc.d tika enable
# Where you extracted the Tika distribution bundle
TIKA_INSTALL_DIR="/opt/tika"
if [ ! -d "$TIKA_INSTALL_DIR" ]; then
echo "$TIKA_INSTALL_DIR not found! Please check the TIKA_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/tika script. It's highly recommended to define this script so
# that you can keep the Tika binary files separated from live files (pid, logs, etc)
# see bin/tika.in.sh for an example
TIKA_ENV="/etc/default/tika.in.sh"
if [ ! -f "$TIKA_ENV" ]; then
echo "$TIKA_ENV not found! Please check the TIKA_ENV setting in your $0 script."
exit 1
fi
# Specify the user to run Tika as; if not set, then Tika will run as root.
# Running Tika as root is not recommended for production environments
RUNAS="tika"
# 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|status)
TIKA_CMD="$1"
;;
*)
echo "Usage: $0 {start|stop|status}"
exit
esac
if [ -n "$RUNAS" ]; then
su -c "TIKA_INCLUDE=\"$TIKA_ENV\" \"$TIKA_INSTALL_DIR/bin/tika\" $TIKA_CMD" - "$RUNAS"
else
TIKA_INCLUDE="$TIKA_ENV" "$TIKA_INSTALL_DIR/bin/tika" "$TIKA_CMD"
fi