#!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org START=50 start() { config_load "postgresql" if [ ! -e /bin/su ]; then echo "The su command is requred to run postgres" exit 1 fi config_get pgdata config PGDATA if [ ! -d ${pgdata} ]; then echo "Create the data directory (${pgdata}) and try again" exit 1 fi if [ -f ${pgdata}/postmaster.pid ]; then rm ${pgdata}/postmaster.pid fi config_get pguser config PGUSER config_get pglog config PGLOG config_get pgctl config PG_CTL config_get pgopts config PGOPTS /bin/su - ${pguser} -c "${pgctl} start -D '${pgdata}' -s -l '${pglog}' -o '${pgopts}'" while : do cnt=$((${cnt} + 1)) if [ -f "${pgdata}/postmaster.pid" ]; then ret=0 break fi if [ ${cnt} -eq 30 ]; then echo "Postgres failed to start. See ${pglog} for details" ret=1 break fi sleep 1 done return ${ret} }