starting PgSQL w/ launchd on OSX 10.4.2 - Mailing list pgsql-ports

From OpenMacNews
Subject starting PgSQL w/ launchd on OSX 10.4.2
Date
Msg-id DACBBDA517C947EEB4FAF0F6@tiedgar
Whole thread Raw
List 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

pgsql-ports by date:

Previous
From: "Clark, Andrew"
Date:
Subject: Solaris SPARC - Sun compiler 5.5 - 64 bit
Next
From: Mogin Mohandas
Date:
Subject: compiling a file by creating a shared library(adding new data type)