otrs/otrs-initscript

117 lines
3.4 KiB
Bash

#!/bin/sh
# --
# Cron.sh - start|stop OTRS Cronjobs
# Copyright (C) 2001-2008 OTRS AG, http://otrs.org/
# --
# $Id: Cron.sh,v 1.17 2008/07/18 08:05:56 tr Exp $
# --
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# --
# chkconfig: 345 90 10
# description: Start/stop OTRS crons
# processname: otrs
CURRENTUSER=`whoami`
CRON_USER="otrs"
# check if a common user try to use -u
if test -n "$CRON_USER"; then
if test $CURRENTUSER != root; then
echo "Run this script just as OTRS user! Or use 'Cron.sh {start|stop|restart} OTRS_USER' as root!"
exit 5
fi
fi
# check if the cron user is specified
if test -z "$CRON_USER"; then
if test $CURRENTUSER = root; then
echo "Run this script just as OTRS user! Or use 'Cron.sh {start|stop|restart} OTRS_USER' as root!"
exit 5
fi
fi
OTRS_HOME=/opt/otrs
#OTRS_ROOT=/opt/OpenTRS
if test -e $OTRS_HOME/var/cron; then
OTRS_ROOT=$OTRS_HOME
else
echo "No cronjobs in $OTRS_HOME/var/cron found!";
echo " * Check the \$HOME (/etc/passwd) of the OTRS user. It must be the root dir of your OTRS system (e. g. /opt/otrs). ";
exit 5;
fi
CRON_DIR=$OTRS_ROOT/var/cron
CRON_TMP_FILE=$OTRS_ROOT/var/tmp/otrs-cron-tmp.$$
echo "Cron.sh - start/stop OTRS cronjobs - <\$Revision: 1.17 $> "
echo "Copyright (C) 2001-2008 OTRS AG, http://otrs.org/"
#
# main part
#
case "$1" in
# ------------------------------------------------------
# start
# ------------------------------------------------------
start)
# add -u to cron user if exits
if test -n "$CRON_USER"; then
CRON_USER=" -u $CRON_USER"
fi
if mkdir -p $CRON_DIR; cd $CRON_DIR && ls -d * | grep -v '.dist'| grep -v '.rpm'| grep -v CVS | xargs cat > $CRON_TMP_FILE && crontab $CRON_USER $CRON_TMP_FILE; then
rm -rf $CRON_TMP_FILE
echo "(using $OTRS_ROOT) done";
exit 0;
else
echo "failed";
exit 1;
fi
;;
# ------------------------------------------------------
# stop
# ------------------------------------------------------
stop)
# add -u to cron user if exits
if test -n "$CRON_USER"; then
CRON_USER=" -u $CRON_USER"
fi
if crontab $CRON_USER -r ; then
echo "done";
exit 0;
else
echo "failed";
exit 1;
fi
;;
# ------------------------------------------------------
# restart
# ------------------------------------------------------
restart)
$0 stop "$CRON_USER"
$0 start "$CRON_USER"
;;
# ------------------------------------------------------
# Usage
# ------------------------------------------------------
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac