hplip/rchplip

184 lines
3.9 KiB
Bash

#! /bin/bash
#
# Startup/shutdown script for HPLIP
#
# Note, this script file must start before cupsd.
#
# For chkconfig the HPLIP priority (ie: 50) must be less the cupsd
# priority (ie: 55).
#
# For LSB install_initd the cups script file should have "hplip" in the
# Should-Start field.
#
# chkconfig: 2345 50 10
# description: Start/stop script for HP Linux Imaging and Printing (HPLIP).
#
# (c) 2004 Copyright Hewlett-Packard Development Company, LP
#
### BEGIN INIT INFO
# Provides: hplip
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop:
# Description: Start/stop script for HP Linux Imaging and Printing (HPLIP)
### END INIT INFO
HPSSDDIR=/usr/share/hplip
RUNDIR=/var/run
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
else
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
export LC_ALL="POSIX"
export LANG="POSIX"
umask 022
daemon() {
( exec -a hpssd python /usr/share/hplip/hpssd.py >/dev/null 2>&1 )
if [ $? -eq 0 ]; then
echo -ne " [ OK ]\r"
else
echo -ne " [FAILED]\r"
fi
}
killproc() {
pid=`pidof -s $1`
pidfile=$RUNDIR/${1}.pid
if [ -z $pid ]; then
if [ -f $pidfile ]; then
read pid < $pidfile
kill $pid
fi
else
kill $pid
fi
retval=$?
if [ -f $pidfile ]; then
rm $pidfile
fi
if [ $retval -eq 0 ]; then
echo -ne " [ OK ]\r"
else
echo -ne " [FAILED]\r"
fi
}
fi
mystatus() {
pid=`pidof -s $1`
if [ -z $pid ]; then
pidfile=$RUNDIR/${1}.pid
if [ -f $pidfile ]; then
read pid < $pidfile
fi
fi
if [ -n "$pid" ]; then
echo $"$1 (pid $pid) is running..."
return 0
fi
echo $"$1 is stopped"
return 3
}
RETVAL=0
start() {
echo -n $"Starting hpssd: "
cd $HPSSDDIR
daemon ./hpssd.py
RETVAL=$?
echo
[ $RETVAL = 0 ] && [ -d /var/lock/subsys ] && touch /var/lock/subsys/hpssd.py
if [ -f /var/lock/subsys/hpssd.py ]; then
touch /var/lock/subsys/hplip
fi
return $RETVAL
}
stop() {
echo -n $"Stopping hpssd: "
killproc hpssd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/hpssd.py
for pidfile in $RUNDIR/*; do
case "$( basename $pidfile )" in
hpguid-*.pid)
read pid < $pidfile
kill $pid
rm $pidfile
esac
done
if [ ! -f /var/lock/subsys/hpssd.py ]; then
rm -f /var/lock/subsys/hplip
fi
return $RETVAL
}
restart() {
stop
start
}
debug() {
# Allow core dumps.
ulimit -c unlimited
echo -n $"Starting hpssd: "
cd $HPSSDDIR
./hpssd.py >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo -ne " [ OK ]\r"
else
echo -ne " [FAILED]\r"
fi
echo
[ $RETVAL = 0 ] && [ -d /var/lock/subsys ] && touch /var/lock/subsys/hpssd.py
if [ -f /var/lock/subsys/hpssd.py ]; then
touch /var/lock/subsys/hplip
return 0
else
return 1
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
mystatus hpssd
;;
restart)
restart
;;
try-restart)
## Restart the service only if it was running before:
mystatus hpssd &>/dev/null && restart || :
;;
condrestart)
[ -f /var/lock/subsys/hpssd.py ] && restart || :
;;
debug)
debug
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|condrestart}"
exit 1
esac
exit $?