]> git.ipfire.org Git - thirdparty/cups.git/blob - init/cups.sh.in
b291595192187f181886473ccddcd4ba4adae85a
[thirdparty/cups.git] / init / cups.sh.in
1 #!/bin/sh
2 #
3 # "$Id$"
4 #
5 # Startup/shutdown script for the Common UNIX Printing System (CUPS).
6 #
7 # Copyright 1997-2005 by Easy Software Products, all rights reserved.
8 #
9 # These coded instructions, statements, and computer programs are the
10 # property of Easy Software Products and are protected by Federal
11 # copyright law. Distribution and use rights are outlined in the file
12 # "LICENSE.txt" which should have been included with this file. If this
13 # file is missing or damaged please contact Easy Software Products
14 # at:
15 #
16 # Attn: CUPS Licensing Information
17 # Easy Software Products
18 # 44141 Airport View Drive, Suite 204
19 # Hollywood, Maryland 20636 USA
20 #
21 # Voice: (301) 373-9600
22 # EMail: cups-info@cups.org
23 # WWW: http://www.cups.org
24 #
25
26 #### OS-Dependent Information
27
28 #
29 # Linux chkconfig stuff:
30 #
31 # chkconfig: 235 99 00
32 # description: Startup/shutdown script for the Common UNIX \
33 # Printing System (CUPS).
34 #
35
36 #
37 # NetBSD 1.5+ rcorder script lines. The format of the following two
38 # lines is very strict -- please don't add additional spaces!
39 #
40 # PROVIDE: cups
41 # REQUIRE: DAEMON
42 #
43
44
45 #### OS-Dependent Configuration
46
47 case "`uname`" in
48 IRIX*)
49 IS_ON=/sbin/chkconfig
50
51 if $IS_ON verbose; then
52 ECHO=echo
53 else
54 ECHO=:
55 fi
56 ECHO_OK=:
57 ECHO_ERROR=:
58 ;;
59
60 *BSD*)
61 IS_ON=:
62 ECHO=echo
63 ECHO_OK=:
64 ECHO_ERROR=:
65 ;;
66
67 Darwin*)
68 . /etc/rc.common
69
70 if test "${CUPS:=-YES-}" = "-NO-"; then
71 exit 0
72 fi
73
74 IS_ON=:
75 ECHO=ConsoleMessage
76 ECHO_OK=:
77 ECHO_ERROR=:
78 ;;
79
80 Linux*)
81 IS_ON=/bin/true
82 if test -f /etc/init.d/functions; then
83 . /etc/init.d/functions
84 ECHO=echo
85 ECHO_OK="echo_success"
86 ECHO_ERROR="echo_failure"
87 else
88 ECHO=echo
89 ECHO_OK=:
90 ECHO_ERROR=:
91 fi
92 ;;
93
94 *)
95 IS_ON=/bin/true
96 ECHO=echo
97 ECHO_OK=:
98 ECHO_ERROR=:
99 ;;
100 esac
101
102 #### OS-Independent Stuff
103
104 #
105 # Set the timezone, if possible... This allows the scheduler and
106 # all child processes to know the local timezone when reporting
107 # dates and times to the user. If no timezone information is
108 # found, then Greenwich Mean Time (GMT) will probably be used.
109 #
110
111 for file in /etc/TIMEZONE /etc/rc.config /etc/sysconfig/clock; do
112 if test -f $file; then
113 . $file
114 fi
115 done
116
117 if test "x$ZONE" != x; then
118 TZ="$ZONE"
119 fi
120
121 if test "x$TIMEZONE" != x; then
122 TZ="$TIMEZONE"
123 fi
124
125 if test "x$TZ" != x; then
126 export TZ
127 fi
128
129 #
130 # Don't use TMPDIR environment variable from init script, as that can
131 # cause cupsd to set TempDir to a user's temporary directory instead
132 # of the default...
133 #
134
135 unset TMPDIR
136
137
138 #
139 # See if the CUPS server (cupsd) is running...
140 #
141
142 case "`uname`" in
143 HP-UX* | AIX* | SINIX*)
144 pid=`ps -e | awk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'`
145 ;;
146 IRIX* | SunOS*)
147 pid=`ps -e | nawk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'`
148 ;;
149 UnixWare*)
150 pid=`ps -e | awk '{if (match($6, ".*/cupsd$") || $6 == "cupsd") print $1}'`
151 . /etc/TIMEZONE
152 ;;
153 OSF1*)
154 pid=`ps -e | awk '{if (match($5, ".*/cupsd$") || $5 == "cupsd") print $1}'`
155 ;;
156 Linux* | *BSD* | Darwin*)
157 pid=`ps ax | awk '{if (match($5, ".*/cupsd$") || $5 == "cupsd") print $1}'`
158 ;;
159 *)
160 pid=""
161 ;;
162 esac
163
164 #
165 # Start or stop the CUPS server based upon the first argument to the script.
166 #
167
168 case $1 in
169 start | restart | reload)
170 if $IS_ON cups; then
171 if test "$pid" != ""; then
172 kill -HUP $pid
173 else
174 prefix=@prefix@
175 exec_prefix=@exec_prefix@
176 @sbindir@/cupsd
177 if test $? != 0; then
178 $ECHO_FAIL
179 $ECHO "cups: unable to $1 scheduler."
180 exit 1
181 fi
182 fi
183 $ECHO_OK
184 $ECHO "cups: ${1}ed scheduler."
185 fi
186 ;;
187
188 stop)
189 if test "$pid" != ""; then
190 kill $pid
191 $ECHO_OK
192 $ECHO "cups: stopped scheduler."
193 fi
194 ;;
195
196 status)
197 if test "$pid" != ""; then
198 echo "cups: scheduler is running."
199 else
200 echo "cups: scheduler is not running."
201 fi
202 ;;
203
204 *)
205 echo "Usage: cups {reload|restart|start|status|stop}"
206 exit 1
207 ;;
208 esac
209
210 #
211 # Exit with no errors.
212 #
213
214 exit 0
215
216
217 #
218 # End of "$Id$".
219 #