|
|
#!/bin/sh
|
|
|
#
|
|
|
# Startup/shutdown script for CUPS.
|
|
|
#
|
|
|
# Copyright © 2007-2013 by Apple Inc.
|
|
|
# Copyright © 1997-2007 by Easy Software Products, all rights reserved.
|
|
|
#
|
|
|
# Licensed under Apache License v2.0. See the file "LICENSE" for more
|
|
|
# information.
|
|
|
#
|
|
|
|
|
|
#### OS-Dependent Information
|
|
|
|
|
|
#
|
|
|
# Linux chkconfig stuff:
|
|
|
#
|
|
|
# chkconfig: 235 99 00
|
|
|
# description: Startup/shutdown script for CUPS.
|
|
|
#
|
|
|
|
|
|
#
|
|
|
# NetBSD 1.5+ rcorder script lines. The format of the following two
|
|
|
# lines is very strict -- please don't add additional spaces!
|
|
|
#
|
|
|
# PROVIDE: cups
|
|
|
# REQUIRE: DAEMON
|
|
|
#
|
|
|
|
|
|
|
|
|
#### OS-Dependent Configuration
|
|
|
|
|
|
case "`uname`" in
|
|
|
*BSD*)
|
|
|
IS_ON=:
|
|
|
ECHO=echo
|
|
|
ECHO_OK=:
|
|
|
ECHO_ERROR=:
|
|
|
;;
|
|
|
|
|
|
Darwin*)
|
|
|
. /etc/rc.common
|
|
|
|
|
|
if test "${CUPS:=-YES-}" = "-NO-"; then
|
|
|
exit 0
|
|
|
fi
|
|
|
|
|
|
IS_ON=:
|
|
|
ECHO=ConsoleMessage
|
|
|
ECHO_OK=:
|
|
|
ECHO_ERROR=:
|
|
|
;;
|
|
|
|
|
|
Linux*)
|
|
|
IS_ON=/bin/true
|
|
|
if test -f /etc/init.d/functions; then
|
|
|
. /etc/init.d/functions
|
|
|
ECHO=echo
|
|
|
ECHO_OK="echo_success"
|
|
|
ECHO_ERROR="echo_failure"
|
|
|
else
|
|
|
ECHO=echo
|
|
|
ECHO_OK=:
|
|
|
ECHO_ERROR=:
|
|
|
fi
|
|
|
;;
|
|
|
|
|
|
*)
|
|
|
IS_ON=/bin/true
|
|
|
ECHO=echo
|
|
|
ECHO_OK=:
|
|
|
ECHO_ERROR=:
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
#### OS-Independent Stuff
|
|
|
|
|
|
#
|
|
|
# Set the timezone, if possible... This allows the scheduler and
|
|
|
# all child processes to know the local timezone when reporting
|
|
|
# dates and times to the user. If no timezone information is
|
|
|
# found, then Greenwich Mean Time (GMT) will probably be used.
|
|
|
#
|
|
|
|
|
|
for file in /etc/TIMEZONE /etc/rc.config /etc/sysconfig/clock; do
|
|
|
if test -f $file; then
|
|
|
. $file
|
|
|
fi
|
|
|
done
|
|
|
|
|
|
if test "x$ZONE" != x; then
|
|
|
TZ="$ZONE"
|
|
|
fi
|
|
|
|
|
|
if test "x$TIMEZONE" != x; then
|
|
|
TZ="$TIMEZONE"
|
|
|
fi
|
|
|
|
|
|
if test "x$TZ" != x; then
|
|
|
export TZ
|
|
|
fi
|
|
|
|
|
|
#
|
|
|
# Don't use TMPDIR environment variable from init script, as that can
|
|
|
# cause cupsd to set TempDir to a user's temporary directory instead
|
|
|
# of the default...
|
|
|
#
|
|
|
|
|
|
unset TMPDIR
|
|
|
|
|
|
|
|
|
#
|
|
|
# Make sure we have the standard program directories in the path
|
|
|
# since some operating systems don't provide a standard path on boot-up...
|
|
|
#
|
|
|
|
|
|
if test "x$PATH" = x; then
|
|
|
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
|
|
|
else
|
|
|
PATH="/bin:/usr/bin:/sbin:/usr/sbin:$PATH"
|
|
|
fi
|
|
|
|
|
|
export PATH
|
|
|
|
|
|
#
|
|
|
# See if the CUPS server (cupsd) is running...
|
|
|
#
|
|
|
|
|
|
case "`uname`" in
|
|
|
SunOS*)
|
|
|
pid=`ps -e | nawk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'`
|
|
|
;;
|
|
|
Linux* | *BSD* | Darwin*)
|
|
|
pid=`ps ax | awk '{if (match($5, ".*/cupsd$") || $5 == "cupsd") print $1}'`
|
|
|
;;
|
|
|
*)
|
|
|
pid=""
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
#
|
|
|
# Start or stop the CUPS server based upon the first argument to the script.
|
|
|
#
|
|
|
|
|
|
case $1 in
|
|
|
start | restart | reload)
|
|
|
if $IS_ON cups; then
|
|
|
if test -x /sbin/portrelease; then
|
|
|
/sbin/portrelease cups
|
|
|
fi
|
|
|
|
|
|
if test "$pid" != ""; then
|
|
|
kill -HUP $pid
|
|
|
else
|
|
|
prefix=@prefix@
|
|
|
exec_prefix=@exec_prefix@
|
|
|
@sbindir@/cupsd
|
|
|
if test $? != 0; then
|
|
|
$ECHO_FAIL
|
|
|
$ECHO "cups: unable to $1 scheduler."
|
|
|
exit 1
|
|
|
fi
|
|
|
fi
|
|
|
$ECHO_OK
|
|
|
$ECHO "cups: ${1}ed scheduler."
|
|
|
fi
|
|
|
;;
|
|
|
|
|
|
stop)
|
|
|
if test "$pid" != ""; then
|
|
|
kill $pid
|
|
|
$ECHO_OK
|
|
|
$ECHO "cups: stopped scheduler."
|
|
|
fi
|
|
|
;;
|
|
|
|
|
|
status)
|
|
|
if test "$pid" != ""; then
|
|
|
echo "cups: scheduler is running."
|
|
|
else
|
|
|
echo "cups: scheduler is not running."
|
|
|
fi
|
|
|
;;
|
|
|
|
|
|
*)
|
|
|
echo "Usage: cups {reload|restart|start|status|stop}"
|
|
|
exit 1
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
#
|
|
|
# Exit with no errors.
|
|
|
#
|
|
|
|
|
|
exit 0
|