#!/bin/sh # # "$Id: cups.sh.in 6649 2007-07-11 21:46:42Z mike $" # # Startup/shutdown script for the Common UNIX Printing System (CUPS). # # Copyright 2007 by Apple Inc. # Copyright 1997-2007 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the # property of Apple Inc. and are protected by Federal copyright # law. Distribution and use rights are outlined in the file "LICENSE.txt" # which should have been included with this file. If this file is # file is missing or damaged, see the license at "http://www.cups.org/". # # Having checked the cups.org website address given above, I believe that # this script is licensed under the GNU GPL, and have therefore made # some small modernizations to it -- Sasha Alexandr - Dec 2009 # #### OS-Dependent Information # # Linux chkconfig stuff: # # chkconfig: 235 99 00 # description: Startup/shutdown script for the Common UNIX \ # Printing System (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 IRIX*) IS_ON=/sbin/chkconfig if $IS_ON verbose; then ECHO=echo else ECHO=: fi ECHO_OK=: ECHO_ERROR=: ;; *BSD*) IS_ON=: ECHO=echo ECHO_OK=: ECHO_ERROR=: ;; Darwin*) . /etc/rc.common [ "${CUPS:=-YES-}" = "-NO-" ] && exit 0 IS_ON=: ECHO=ConsoleMessage ECHO_OK=: ECHO_ERROR=: ;; Linux*) IS_ON=/bin/true if [ -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 [ -f $file ] && . $file done [ "$ZONE" ] && TZ="$ZONE" [ "$TIMEZONE" ] && TZ="$TIMEZONE" [ "$TZ" ] && export TZ # # 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 (this means YOU HP-UX!) don't # provide a standard path on boot-up... # [ ! "$PATH" ] && PATH="/bin:/usr/bin:/sbin:/usr/sbin" || PATH="/bin:/usr/bin:/sbin:/usr/sbin:$PATH" export PATH # # See if the CUPS server (cupsd) is running... # case "$(uname)" in HP-UX* | AIX* | SINIX*) pid=$(ps -e | awk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}') ;; IRIX* | SunOS*) pid=$(ps -e | nawk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}') ;; UnixWare*) pid=$(ps -e | awk '{if (match($6, ".*/cupsd$") || $6 == "cupsd") print $1}') . /etc/TIMEZONE ;; OSF1*) pid=$(ps -e | awk '{if (match($5, ".*/cupsd$") || $5 == "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 [ "$pid" ]; then kill -HUP $pid else prefix=/ exec_prefix=/usr /usr/sbin/cupsd if [ $? != 0 ]; then $ECHO_FAIL $ECHO "cups: unable to $1 scheduler." exit 1 fi fi $ECHO_OK $ECHO "cups: ${1}ed scheduler." fi ;; stop) if [ "$pid" ]; then kill $pid $ECHO_OK $ECHO "cups: stopped scheduler." fi ;; status) [ "$pid" ] && echo "cups: scheduler is running." || echo "cups: scheduler is not running." ;; start_msg) # HP-UX non-standard... echo "Starting CUPS Server" ;; stop_msg) # HP-UX non-standard... echo "Starting CUPS Server" ;; *) echo "Usage: cups {reload|restart|start|status|stop}" exit 1 ;; esac # # Exit with no errors. # exit 0 # # End of "$Id: cups.sh.in 6649 2007-07-11 21:46:42Z mike $". #