сабж.
Написал агента HA для pgbouncer
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.9 (squeeze)
Release: 6.0.9
Codename: squeeze
Сам скрипт ресур агента
#!/bin/sh
#######################################################################
# Initialization:
: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat}
. ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs
#######################################################################
meta_data() {
cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="Pgbouncer" version="1.0">
<version>1.0</version>
<longdesc lang="en">
Pgbouncer
</longdesc>
<shortdesc lang="en">Pgbouncer resource agent</shortdesc>
<parameters>
<parameter name="binfile" required="0" unique="0">
<longdesc lang="en">
</longdesc>
<shortdesc lang="en">Pgbouncer binary</shortdesc>
<content type="string" default="/usr/sbin/pgbouncer" />
</parameter>
<parameter name="config" required="0" unique="0">
<longdesc lang="en">
</longdesc>
<shortdesc lang="en">params config</shortdesc>
<content type="string" default="/etc/pgbouncer" />
</parameter>
<parameter name="user" required="0" unique="0">
<longdesc lang="en">
</longdesc>
<shortdesc lang="en">user</shortdesc>
<content type="string" default="postgres" />
</parameter>
</parameters>
<actions>
<action name="start" timeout="20" />
<action name="stop" timeout="20" />
<action name="monitor" timeout="20" interval="10" depth="0" />
</actions>
</resource-agent>
END
}
: ${OCF_RESKEY_config=/etc/pgbouncer/pgbouncer.ini}
: ${OCF_RESKEY_binfile=/usr/sbin/pgbouncer}
: ${OCF_RESKEY_user=postgres}
#######################################################################
pgbouncer_usage() {
cat <<END
usage: $0 {start|stop|monitor}
Expects to have a fully populated OCF RA-compliant environment set.
END
}
isalive_pgbouncer()
{
pgrep -f $OCF_RESKEY_config
}
pgbouncer_monitor() {
isalive_pgbouncer ||
return $OCF_NOT_RUNNING
return $OCF_SUCCESS
}
pgbouncer_start() {
pgbouncer_monitor
if [ $? = $OCF_SUCCESS ]; then
return $OCF_SUCCESS
else
$OCF_RESKEY_binfile -d $OCF_RESKEY_config -u $OCF_RESKEY_user
fi
}
pgbouncer_stop() {
kill -9 `pgrep -f $OCF_RESKEY_config`
}
case $__OCF_ACTION in
meta-data) meta_data
exit $OCF_SUCCESS
;;
start) pgbouncer_start;;
stop) pgbouncer_stop;;
monitor) pgbouncer_monitor;;
usage|help) pgbouncer_usage
exit $OCF_SUCCESS
;;
*) pgbouncer_usage
exit $OCF_ERR_UNIMPLEMENTED
;;
esac
rc=$?
ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc"
exit $rc
Фишка вот в чем, если взять и убить процесс pgbouncer то он автоматом не стартует, если делать все через консоль управления:
crm resource stop/start pgbouncer или перезагружать к примеру сервер или останавливать corosync, то все ок.
Вопрос вот в чем, как сделать так, что бы он стартовал автоматом, и не надо было бы выполнть crm resource cleanup pgbouncer
Может какую проверку не указал еще? *SCRATCH*