#! /bin/sh ### BEGIN INIT INFO # Provides: cups # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Should-Start: $network avahi-daemon slapd nslcd # Should-Stop: $network # X-Start-Before: samba # X-Stop-After: samba # Default-Start: 2 3 4 5 # Default-Stop: 1 # Short-Description: CUPS Printing spooler and server # Description: Manage the CUPS Printing spooler and server; # make it's web interface accessible on http://localhost:631/ ### END INIT INFO # Author: Debian Printing Team global PATH := '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin' global DAEMON := '/usr/sbin/cupsd' global NAME := 'cupsd' global PIDFILE := "/var/run/cups/$NAME.pid" global DESC := '"Common Unix Printing System'" global SCRIPTNAME := '/etc/init.d/cups' unset TMPDIR # Exit if the package is not installed test -x $DAEMON || exit 0 mkdir -p /var/run/cups/certs test -x /sbin/restorecon && /sbin/restorecon -R /var/run/cups # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. source /lib/lsb/init-functions # Get the timezone set. if test -z $TZ -a -e /etc/timezone { global TZ := $[cat /etc/timezone] export TZ } proc coldplug_usb_printers { if type udevadm > /dev/null !2 > !1 && test -x /lib/udev/udev-configure-printer { for printer in [$[udevadm trigger --verbose --dry-run --subsystem-match=usb \ --attr-match=bInterfaceClass=07 --attr-match=bInterfaceSubClass=01 !2 >/dev/null || true; \ udevadm trigger --verbose --dry-run --subsystem-match=usb \ --sysname-match='lp[0-9]*' !2 >/dev/null || true]] { /lib/udev/udev-configure-printer add $(printer#/sys) } } } matchstr $1 { start { log_daemon_msg "Starting $DESC" $NAME mkdir -p $[dirname $PIDFILE] start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON global status := $Status test $status = 0 && coldplug_usb_printers log_end_msg $status } stop { log_daemon_msg "Stopping $DESC" $NAME start-stop-daemon --stop --quiet --retry 5 --oknodo --pidfile $PIDFILE --name $NAME global status := $Status log_end_msg $status } reload|force-reload { log_daemon_msg "Reloading $DESC" $NAME start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $NAME --signal 1 global status := $Status log_end_msg $status } restart { log_daemon_msg "Restarting $DESC" $NAME if start-stop-daemon --stop --quiet --retry 5 --oknodo --pidfile $PIDFILE --name $NAME { start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON } global status := $Status log_end_msg $status } status { status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $Status } * { echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" > !2 exit 3 } } exit 0 (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATH) op: Equal rhs: {(/usr/local/sbin) (Lit_Other ":") (/usr/local/bin) (Lit_Other ":") (/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/usr/bin) } spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DAEMON) op:Equal rhs:{(/usr/sbin/cupsd)} spids:[63])] spids: [63] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NAME) op:Equal rhs:{(cupsd)} spids:[66])] spids: [66] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PIDFILE) op: Equal rhs: {(/var/run/cups/) ($ VSub_Name "$NAME") (.pid)} spids: [69] ) ] spids: [69] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESC) op: Equal rhs: {(DQ ("Common Unix Printing System"))} spids: [74] ) ] spids: [74] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTNAME) op: Equal rhs: {(/etc/init.d/cups)} spids: [79] ) ] spids: [79] ) (C {(unset)} {(TMPDIR)}) (AndOr children: [(C {(test)} {(-x)} {($ VSub_Name "$DAEMON")}) (C {(exit)} {(0)})] op_id: Op_DPipe ) (C {(mkdir)} {(-p)} {(/var/run/cups/certs)}) (AndOr children: [ (C {(Lit_Other "[")} {(-x)} {(/sbin/restorecon)} {(Lit_Other "]")}) (C {(/sbin/restorecon)} {(-R)} {(/var/run/cups)}) ] op_id: Op_DAmp ) (C {(.)} {(/lib/lsb/init-functions)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$TZ"))} {(-a)} {(-e)} {(/etc/timezone)} {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TZ) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(cat)} {(/etc/timezone)})]) left_token: spids: [167 171] ) } spids: [166] ) ] spids: [166] ) (C {(export)} {(TZ)}) ] spids: [-1 163] ) ] spids: [-1 178] ) (FuncDef name: coldplug_usb_printers body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (SimpleCommand words: [{(type)} {(udevadm)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [194] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [198] ) ] ) (C {(Lit_Other "[")} {(-x)} {(/lib/udev/udev-configure-printer)} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) terminator: ) ] action: [ (ForEach iter_name: printer iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (AndOr children: [ (SimpleCommand words: [ {(udevadm)} {(trigger)} {(--verbose)} {(--dry-run)} {(--subsystem-match) (Lit_Other "=") (usb)} {(--attr-match) (Lit_Other "=") (Lit_VarLike "bInterfaceClass=") (07) } {(--attr-match) (Lit_Other "=") (Lit_VarLike "bInterfaceSubClass=") (01) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [246] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) terminator: ) (AndOr children: [ (SimpleCommand words: [ {(udevadm)} {(trigger)} {(--verbose)} {(--dry-run)} {(--subsystem-match) (Lit_Other "=") (usb)} {(--sysname-match) (Lit_Other "=") (SQ <"lp[0-9]*">)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [276] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) ] ) left_token: spids: [221 282] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(/lib/udev/udev-configure-printer)} {(add)} { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (sys)} ) spids: [293 298] ) ) } ) ] spids: [285 302] ) spids: [220 283] ) ] spids: [-1 212] ) ] spids: [-1 305] ) ] spids: [185] ) spids: [181 184] ) (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(start)}] action: [ (C {(log_daemon_msg)} {(DQ ("Starting ") ($ VSub_Name "$DESC"))} {(DQ ($ VSub_Name "$NAME"))}) (C {(mkdir)} {(-p)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name "$PIDFILE"))})] ) left_token: spids: [340 346] ) } ) (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--oknodo)} {(--pidfile)} {(DQ ($ VSub_Name "$PIDFILE"))} {(--exec)} {($ VSub_Name "$DAEMON")} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [368] ) ] spids: [368] ) (AndOr children: [ (C {(Lit_Other "[")} {($ VSub_Name "$status")} {(Lit_Other "=")} {(0)} {(Lit_Other "]")}) (C {(coldplug_usb_printers)}) ] op_id: Op_DAmp ) (C {(log_end_msg)} {($ VSub_Name "$status")}) ] spids: [319 320 392 -1] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_daemon_msg)} {(DQ ("Stopping ") ($ VSub_Name "$DESC"))} {(DQ ($ VSub_Name "$NAME"))}) (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--retry)} {(5)} {(--oknodo)} {(--pidfile)} {($ VSub_Name "$PIDFILE")} {(--name)} {($ VSub_Name "$NAME")} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [432] ) ] spids: [432] ) (C {(log_end_msg)} {($ VSub_Name "$status")}) ] spids: [395 396 441 -1] ) (case_arm pat_list: [{(reload)} {(force-reload)}] action: [ (C {(log_daemon_msg)} {(DQ ("Reloading ") ($ VSub_Name "$DESC"))} {(DQ ($ VSub_Name "$NAME"))} ) (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--pidfile)} {($ VSub_Name "$PIDFILE")} {(--name)} {($ VSub_Name "$NAME")} {(--signal)} {(1)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [481] ) ] spids: [481] ) (C {(log_end_msg)} {($ VSub_Name "$status")}) ] spids: [444 447 490 -1] ) (case_arm pat_list: [{(restart)}] action: [ (C {(log_daemon_msg)} {(DQ ("Restarting ") ($ VSub_Name "$DESC"))} {(DQ ($ VSub_Name "$NAME"))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--retry)} {(5)} {(--oknodo)} {(--pidfile)} {($ VSub_Name "$PIDFILE")} {(--name)} {($ VSub_Name "$NAME")} ) terminator: ) ] action: [ (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--pidfile)} {(DQ ($ VSub_Name "$PIDFILE"))} {(--exec)} {($ VSub_Name "$DAEMON")} ) ] spids: [-1 532] ) ] spids: [-1 552] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [555] ) ] spids: [555] ) (C {(log_end_msg)} {($ VSub_Name "$status")}) ] spids: [493 494 564 -1] ) (case_arm pat_list: [{(status)}] action: [ (AndOr children: [ (C {(status_of_proc)} {(-p)} {(DQ ($ VSub_Name "$PIDFILE"))} {(DQ ($ VSub_Name "$DAEMON"))} {(DQ ($ VSub_Name "$NAME"))} ) (AndOr children: [(C {(exit)} {(0)}) (C {(exit)} {($ VSub_QMark "$?")})] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [567 568 600 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("Usage: ") ($ VSub_Name "$SCRIPTNAME") (" {start|stop|restart|force-reload|status}") ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[615])] ) (C {(exit)} {(3)}) ] spids: [603 604 624 -1] ) ] spids: [310 316 626] ) (C {(exit)} {(0)}) ] )