#!/bin/sh # Author: Edward Capriolo # SITE: www.jointhegrid.com # License: GNU General Public License (GPL) # OCF parameters are as below # OCF_RESKEY_listen_port # OCF_RESKEY_control_port # OCF_RESKEY_blacklist # OCF_RESKEY_logfile # OCF_RESKEY_conffile # OCF_RESKEY_server_list # TEsting uncomment #OCF_RESKEY_listen_port=8080 #OCF_RESKEY_control_port=8081 #OCF_RESKEY_blacklist=30 #OCF_RESKEY_logfile=/var/log/pen #OCF_RESKEY_conffile=/etc/pen.cfg #OCF_RESKEY_server_list="server1:80:1024 server2:80:1024" #OCF_ROOT=/usr/lib/ocf ####################################################################### # Initialization: . /etc/init.d/functions . ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs ####################################################################### meta_data() { cat < 1.0 Starts the pen (reverse) proxy Starts the pen proxy The port for client connections data sent to this port will be forwared to back end servers. Can also be specified as host:port listen port used to send control signals to pen control port a blacklist time before a backend server is dead blacklist where to log to logfile extra parameters in a configuration file conffile definition of the backend servers server_list END exit $OCF_SUCCESS } ####################################################################### pen_usage() { cat </dev/null 2>/dev/null /usr/bin/penctl localhost:$OCF_RESKEY_control_port roundrobin #/usr/bin/penctl localhost:$OCF_RESKEY_control_port tracking 60 if [ "$?" = "0" ] ; then echo "Starting pen [OK]" exit $OCF_SUCCESS else echo "Starting pen [FAILED]" exit $OCF_ERR_GENERIC fi else echo "pen already running" exit 0 fi # exit $OCF_ERR_GENERIC # exit $OCF_SUCCESS } pen_stop() { WS_PID=`ps -ef | grep /usr/bin/pen | grep $OCF_RESKEY_control_port | grep -v grep | awk '{print $2}'` if [ "$WS_PID" = "" ] ; then echo "pen is already stopped" return $OCF_SUCCESS else kill $WS_PID echo "pen stopped [OK]" return $OCF_SUCCESS fi exit $OCF_SUCCESS } pen_monitor() { WS_PID=`ps -ef | grep /usr/bin/pen | grep $OCF_RESKEY_control_port | grep -v grep | awk '{print $2}'` if [ "$WS_PID" = "" ] ; then return $OCF_NOT_RUNNING else return $OCF_SUCCESS fi return $OCF_ERR_GENERIC } pen_validate() { exit $OCF_SUCCESS } case $__OCF_ACTION in meta-data) meta_data ;; start) pen_start ;; stop) pen_stop ;; status) pen_monitor ;; monitor) pen_monitor ;; validate-all) pen_validate ;; usage|help) pen_usage exit $OCF_SUCCESS ;; *) pen_usage exit $OCF_ERR_UNIMPLEMENTED ;; esac