Home | History | Annotate | Download | only in scripts
      1 #!/bin/ksh
      2 #
      3 # CDDL HEADER START
      4 #
      5 # The contents of this file are subject to the terms of the
      6 # Common Development and Distribution License, Version 1.0 only
      7 # (the "License").  You may not use this file except in compliance
      8 # with the License.
      9 #
     10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     11 # or http://www.opensolaris.org/os/licensing.
     12 # See the License for the specific language governing permissions
     13 # and limitations under the License.
     14 #
     15 # When distributing Covered Code, include this CDDL HEADER in each
     16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     17 # If applicable, add the following below this CDDL HEADER, with the
     18 # fields enclosed by brackets "[]" replaced with your own identifying
     19 # information: Portions Copyright [yyyy] [name of copyright owner]
     20 #
     21 # CDDL HEADER END
     22 #
     23 #
     24 # ident	"%Z%%M%	%I%	%E% SMI"
     25 #
     26 # Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
     27 # Use is subject to license terms.
     28 #
     29 
     30 	[ -f /usr/lib/lp/local/lpsched ] || exit 1
     31 
     32 # Get command line options and set them in print service
     33 # -f num_filters
     34 # -n num_notifiers
     35 # -p fd_limit
     36 # -r reserved_fds
     37 
     38 # Check to see if lpsched is already running
     39 
     40 state=`svcprop -p restarter/state svc:/application/print/server:default`
     41 if [ "$state" = "online" ] ; then
     42 	/bin/gettext "Print services already active.\n"
     43 	exit 1
     44 fi
     45 
     46 OPTS=$*
     47 
     48 # no options set
     49 
     50 if [ "$OPTS" = "" ]  ; then
     51 	/usr/sbin/svcadm enable -t svc:/application/print/server:default
     52 	if [ $? = 0 ] ; then
     53 		/bin/gettext "Print services started.\n"
     54 		exit 0
     55 	else
     56 		exit 1
     57 	fi
     58 
     59 else
     60 
     61 # Get and set the options
     62 
     63 	/usr/sbin/svccfg <<-EOF 2>/dev/null
     64 		select svc:/application/print/server:default
     65 		addpg cmd_opts count P
     66 
     67 	EOF
     68 
     69 num_filters=0
     70 num_notifiers=0
     71 fd_limit=0
     72 reserved_fds=0
     73 
     74 while getopts :f:n:p:r: arg; do
     75 	case $arg in
     76 	f) 
     77 		num_filters=$OPTARG 
     78 
     79 		/usr/sbin/svccfg <<-EOF 2>/dev/null
     80 		select svc:/application/print/server:default
     81 		setprop cmd_opts/num_filters = count: ${num_filters}
     82 
     83 		EOF
     84 	
     85 		;;
     86 
     87 	n) 
     88 		num_notifiers=$OPTARG 
     89 
     90 		/usr/sbin/svccfg <<-EOF 2>/dev/null
     91 		select svc:/application/print/server:default
     92 		setprop cmd_opts/num_notifiers = count:  ${num_notifiers}
     93 
     94 		EOF
     95 	
     96 		;;
     97 
     98 	p)
     99 		fd_limit=$OPTARG 
    100 
    101 		/usr/sbin/svccfg <<-EOF 2>/dev/null
    102 		select svc:/application/print/server:default
    103 		setprop cmd_opts/fd_limit = count:  ${fd_limit}
    104 
    105 		EOF
    106 	
    107 		;;
    108 
    109 	r)
    110 		reserved_fds=$OPTARG 
    111 
    112 		/usr/sbin/svccfg <<-EOF 2>/dev/null
    113 		select svc:/application/print/server:default
    114 		setprop cmd_opts/reserved_fds = count:  ${reserved_fds}
    115 
    116 		EOF
    117 	
    118 		;;
    119 
    120 	*)	echo "Invalid flag -$OPTARG. Exiting"
    121 			exit 1
    122 	esac
    123 done
    124 
    125 	/usr/sbin/svcadm enable -t svc:/application/print/server:default
    126 	if [ $? = 0 ] ; then
    127 		/bin/gettext "Print services started.\n"
    128 		exit 0
    129 	else
    130 		exit 1
    131 	fi
    132 	
    133 fi
    134 		
    135