| #!/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 |