#!/bin/sh # # cntlmd: Start/stop the cntlm proxy. # # chkconfig: - 26 89 # Description: Cntlm is meant to be given your proxy address and becomming # the primary proxy then, listening on a selected local port. # You point all your proxy-aware programs to it and don't ever # have to deal with proxy authentication again. # ### BEGIN INIT INFO # Provides: cntlm # Required-Start: $syslog $network $time # Required-Stop: $syslog $network $time # Short-Description: Authenticating HTTP accelerator for NTLM secured proxies # Description: Cntlm is meant to be given your proxy address and becomming # the primary proxy then, listening on a selected local port. # You point all your proxy-aware programs to it and don't ever # have to deal with proxy authentication again. ### END INIT INFO # Determining Linux RedHat/SuSE # # /etc/redhat-release # /etc/SuSE-release SuSE=false RedHat=false if [ -f /etc/SuSE-release ]; then SuSE=true elif [ -f /etc/redhat-release ]; then RedHat=true else echo "Error: your platform is not supported by $0" > /dev/stderr exit 1 fi # Source function library SuSE/RedHat. if $SuSE; then if [ -f /lib/lsb/init-functions ]; then . /lib/lsb/init-functions else echo "Error: your platform is not supported by $0" > /dev/stderr exit 1 fi else if [ -f /etc/init.d/functions ]; then . /etc/init.d/functions else echo "Error: your platform is not supported by $0" > /dev/stderr exit 1 fi fi [ -r /etc/sysconfig/cntlmd ] && . /etc/sysconfig/cntlmd # First reset status of this service SuSE/RedHat if $SuSE; then rc_reset else RETVAL=0 fi # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. # Shell functions sourced from /etc/rc.status only on SuSE Linux: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_failed set local and overall rc status to # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status test -f $DAEMON || exit 5 start() { # Start daemons. echo -n "Starting $DESC: " if $SuSE; then startproc -p $PIDFILE $DAEMON $OPTARGS 2>/dev/null rc_status -v else daemon cntlm $OPTARGS 2>/dev/null RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE return $RETVAL fi } stop() { echo -n "Shutting down $DESC: " if $SuSE; then ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. killproc -p $PIDFILE -TERM $DAEMON # Remember status and be verbose rc_status -v else killproc cntlm RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $LOCKFILE return $RETVAL fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) echo -n "Checking for $DESC: " if $SuSE; then ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc -p $PIDFILE $DAEMON rc_status -v else status cntlm fi ;; restart|reload) stop start ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac if $SuSE; then rc_exit else exit $RETVAL fi