starting PgSQL w/ launchd on OSX 10.4.2

From: OpenMacNews <OpenMacNews(at)speakeasy(dot)net>
To: pgsql-ports(at)postgresql(dot)org
Cc: ntulach(at)mac(dot)com
Subject: starting PgSQL w/ launchd on OSX 10.4.2
Date: 2005-07-26 17:05:52
Message-ID: DACBBDA517C947EEB4FAF0F6@tiedgar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

hi all,

after much help/education elsewhere re: building a launchd .plist for apache2,
etc., i'm on to postgresql ...

my 'original' and fully functional StartupItem string(s) for pgsql is(are):

cd /var/Settings/PgSQL/
sudo -u pgsuser
sh -c "nohup /usr/local/pgsql/bin/postmaster -d 5 -n -i -h 10.0.0.6 -D
/var/Data/PgSQL -c config_file=/var/Settings/PgSQL/postgresql.conf </dev/null
>>/var/Logs/postgresql_stderror.log &"

never a problem with it ... and any/all attempts to use/launch are correctly
AND informatively/verbosely logged in BOTH my system.log & postgresql_stderror.

now, on to a launchd .plist ...

i've googled for scripts online (e.g., here: N Tulach,
<http://archives.postgresql.org/pgsql-ports/2005-05/msg00005.php>), and with a
few mods am using:

==========================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

<key>Disabled</key> <false/>
<key>Debug</key> <true/>
<key>OnDemand</key> <false/>

<key>Label</key> <string>org.postgresql.postmaster</string>
<key>ServiceDescription</key> <string>PostgreSQL 8 Server</string>
<key>UserName</key> <string>pgsuser</string>
<key>GroupName</key> <string>pgsuser</string>
<key>WorkingDirectory</key> <string>/var/Settings/PgSQL</string>

<key>StandardOutPath</key>
<string>/var/Logs/postgresql_stderror.log</string>
<key>StandardErrorPath</key>
<string>/var/Logs/postgresql_stderror.log</string>

<key>ProgramArguments</key>
<array>
<string>/usr/local/pgsql/bin/postmaster</string>
<string>-d</string> <string>5</string>
<string>-n</string>
<string>-i</string>
<string>-h</string> <string>10.0.0.6</string>
<string>-D</string> <string>/var/Data/PgSQL</string>
<string>-c</string>
<string>config_file=/var/Settings/PgSQL/postgresql.conf</string>
<string>-c</string>
<string>log_filename=/var/Logs/postgresql_stderror.log</string>
</array>

</dict>
</plist>
==========================================================

on 'launchctl load', my syslog shows only (again!):

Jul 26 09:21:54 devuser launchd: org.postgresql.postmaster: exited with
exit code: 1
Jul 26 09:21:54 devuser launchd: org.postgresql.postmaster: respawning too
quickly! throttling
Jul 26 09:21:54 devuser launchd: org.postgresql.postmaster: 9 more failures
without living at least 60 seconds will cause job removal
Jul 26 09:21:54 devuser launchd: org.postgresql.postmaster: will restart in
10 seconds

with apache, these errors were elim'd by a combo of:

adding "-D FOREGROUND"
removing UserName & GroupName

with PostgreSQL, however (from
<http://www.postgresql.org/docs/current/static/postmaster-start.html>):

"Thus, the simplest way to start the server is:
$ postmaster -D /usr/local/pgsql/data
which will leave the server running in the foreground. This must be done
while logged into the PostgreSQL user account"

which would seem to indicate that:

(a) postmaster DEFAULTS to the foreground, and hence, does NOT need a flag to
do so
(b) postmaster must be run as the postgresql user/group

QUESTIONS:

any ideas why launchd is 'acting up' w.r.t PostgreSQL? and, what to do abt it?

cheers,

richard

Browse pgsql-ports by date

  From Date Subject
Next Message Mogin Mohandas 2005-07-27 07:32:07 compiling a file by creating a shared library(adding new data type)
Previous Message Clark, Andrew 2005-07-26 14:06:08 Solaris SPARC - Sun compiler 5.5 - 64 bit