1#! /bin/sh 2### BEGIN INIT INFO 3# Provides: pxp-agent 4# Required-Start: $network $named $remote_fs $syslog 5# Required-Stop: $network $named $remote_fs $syslog 6# Should-Start: pxp-agent 7# Default-Start: 2 3 4 5 8# Default-Stop: 0 1 6 9### END INIT INFO 10 11exec=/opt/puppetlabs/puppet/bin/pxp-agent 12prog="pxp-agent" 13desc="PXP agent" 14 15piddir=/var/run/puppetlabs 16pidfile="${piddir}/${prog}.pid" 17logdir=/var/log/puppetlabs 18 19[ -x $exec ] || exit 5 20 21[ -r /etc/default/pxp-agent ] && . /etc/default/pxp-agent 22 23. /lib/lsb/init-functions 24 25reload_pxp_agent() { 26 start-stop-daemon --stop --quiet --signal HUP --pidfile $pidfile --name $prog 27} 28 29start_pxp_agent() { 30 mkdir -p $piddir $logdir 31 start-stop-daemon --start --quiet --pidfile $pidfile --startas $exec -- $PXP_AGENT_OPTIONS 32} 33 34stop_pxp_agent() { 35 start-stop-daemon --stop --retry TERM/10/KILL/5 --quiet --oknodo --pidfile $pidfile --name $prog 36 37 pids=$(pgrep -u `whoami` -x $prog) 38 if [ -n "${pids}" ]; then 39 trap '' TERM 40 pkill -TERM -u `whoami` -f $exec 2>/dev/null 41 trap TERM 42 fi 43 rm -f "${pidfile}" 44} 45 46restart_pxp_agent() { 47 log_begin_msg "Restarting $desc" 48 stop_pxp_agent 49 start_pxp_agent 50 log_end_msg $? 51} 52 53status_pxp_agent() { 54 if (type status_of_proc > /dev/null 2>&1) ; then 55 status_of_proc -p "${pidfile}" "${exec}" "${prog}" 56 else 57 status_of_proc() { 58 local pidfile daemon name status 59 60 pidfile= 61 OPTIND=1 62 while getopts p: opt ; do 63 case "$opt" in 64 p) pidfile="$OPTARG";; 65 esac 66 done 67 shift $(($OPTIND - 1)) 68 69 if [ -n "$pidfile" ]; then 70 pidfile="-p $pidfile" 71 fi 72 daemon="$1" 73 name="$2" 74 status="0" 75 pidofproc $pidfile $daemon >/dev/null || status="$?" 76 if [ "$status" = 0 ]; then 77 log_success_msg "$name is running" 78 return 0 79 elif [ "$status" = 4 ]; then 80 log_failure_msg "could not access PID file for $name" 81 return $status 82 else 83 log_failure_msg "$name is not running" 84 return $status 85 fi 86 } 87 status_of_proc -p "${pidfile}" "${exec}" 88 fi 89} 90 91case "$1" in 92 start) 93 log_begin_msg "Starting $desc" 94 start_pxp_agent 95 log_end_msg $? 96 ;; 97 stop) 98 log_begin_msg "Stopping $desc" 99 stop_pxp_agent 100 log_end_msg $? 101 ;; 102 reload) 103 log_begin_msg "Reloading $desc" 104 reload_pxp_agent 105 log_end_msg $? 106 ;; 107 status) 108 status_pxp_agent 109 ;; 110 restart|force-reload) 111 restart_pxp_agent 112 ;; 113 condrestart) 114 if status_pxp_agent >/dev/null 2>&1; then 115 restart_pxp_agent 116 fi 117 ;; 118 *) 119 echo "Usage: $0 {start|stop|status|restart|condrestart}" >&2 120 exit 1 121 ;; 122esac 123