##
## Copyright (C) Centeris Corporation 2004-2007
## Copyright (C) Likewise Software 2007-2008
## All rights reserved.
##
## 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, see .
##
#!/bin/sh
LC_MESSAGES=C; export LC_MESSAGES
PREFIX=@prefix@
BINDIR="$PREFIX/bin"
Help()
{
echo "usage: $0 | | | "
}
GetOsType()
{
${BINDIR}/domainjoin-cli get_os_type
}
GetDistroType()
{
${BINDIR}/domainjoin-cli get_distro
}
GetDistroVersion()
{
${BINDIR}/domainjoin-cli get_distro_version
}
StartCron()
{
osType=`GetOsType`
case "$osType" in
Linux)
if [ -x /etc/init.d/cron ]; then
/etc/init.d/cron start
rc=$?
elif [ -x /etc/init.d/crond ]; then
/etc/init.d/crond start
rc=$?
else
echo "Error: Missing Cron control file"
return 1
fi
;;
SunOS)
if [ -x /etc/init.d/cron ]; then
/etc/init.d/cron start
rc=$?
else
svcadm start svc:/system/cron
rc=$?
fi
;;
AIX)
runlevel=`grep cron /etc/inittab | cut -d : -f 2`
chitab cron:${runlevel}:respawn:/usr/sbin/cron
init q
rc=$?
;;
Darwin)
launchctl start com.vix.cron
rc=$?
;;
HP-UX)
if [ -x /sbin/init.d/cron ]; then
/sbin/init.d/cron start
rc=$?
else
echo "Error: Missing Cron control file"
return 1
fi
;;
*)
echo "Error: Unsupported OS $OS_TYPE"
return 1
;;
esac
return $rc
}
StopCron()
{
osType=`GetOsType`
case "$osType" in
Linux)
if [ -x /etc/init.d/cron ]; then
/etc/init.d/cron stop
rc=$?
elif [ -x /etc/init.d/crond ]; then
/etc/init.d/crond stop
rc=$?
else
echo "Error: Missing Cron control file"
return 1
fi
;;
SunOS)
if [ -x /etc/init.d/cron ]; then
/etc/init.d/cron stop
rc=$?
else
svcadm stop svc:/system/cron
rc=$?
fi
;;
AIX)
runlevel=`grep cron /etc/inittab | cut -d : -f 2`
chitab cron:${runlevel}:off:/usr/sbin/cron
init q
rc=$?
;;
Darwin)
launchctl stop com.vix.cron
rc=$?
;;
HP-UX)
if [ -x /sbin/init.d/cron ]; then
/sbin/init.d/cron stop
rc=$?
else
echo "Error: Missing Cron control file"
return 1
fi
;;
*)
echo "Error: Unsupported OS $OS_TYPE"
return 1
;;
esac
}
RestartCron()
{
osType=`GetOsType`
distroVersion=`GetDistroVersion`
case "$osType" in
SunOS)
if [ -x /etc/init.d/cron ]; then
StopCron
rc=$?
if [ $rc -eq 0 ]; then
StartCron
rc=$?
fi
else
svcadm restart svc:/system/cron
rc=$?
fi
;;
*)
StopCron
rc=$?
if [ $rc -eq 0 ]; then
StartCron
rc=$?
fi
;;
esac
return $rc
}
ReloadCron()
{
osType=`GetOsType`
case "$osType" in
Linux)
if [ -x /etc/init.d/cron ]; then
/etc/init.d/cron reload || /etc/init.d/cron restart
rc=$?
elif [ -x /etc/init.d/crond ]; then
/etc/init.d/crond reload || /etc/init.d/crond restart
rc=$?
else
echo "Error: Missing Cron control file"
return 1
fi
;;
SunOS)
if [ -x /etc/init.d/cron ]; then
StopCron
rc=$?
if [ $rc -eq 0 ]; then
StartCron
rc=$?
fi
else
svcadm refresh svc:/system/cron
rc=$?
fi
;;
AIX)
crontab /var/spool/cron/crontabs/${USER}
rc=$?
;;
Darwin)
StopCron
rc=$?
if [ $rc -eq 0 ]; then
StartCron
fi
;;
HP-UX)
if [ -x /sbin/init.d/cron ]; then
StopCron
rc=$?
if [ $rc -eq 0 ]; then
StartCron
rc=$?
fi
else
echo "Error: Missing Cron control file"
return 1
fi
;;
*)
echo "Error: Unsupported OS $OS_TYPE"
return 1
;;
esac
return $rc
}
#
# main
#
if [ 0 -eq "$#" ]; then
# if the script has no args, show help
Help
exit 0
elif [ 'start' = "$1" ]; then
StartCron
elif [ 'stop' = "$1" ]; then
StopCron
elif [ 'reload' = "$1" ]; then
ReloadCron
elif [ 'restart' = "$1" ]; then
RestartCron
else
Help
exit 1
fi
rc=$?
if [ 0 != "$rc" ]; then
echo "FAILED"
fi