• Tom Lane's avatar
    Make it reasonably safe to use pg_ctl to start the postmaster from a boot-time · 8f5500e6
    Tom Lane authored
    script.
    
    To do this, have pg_ctl pass down its parent shell's PID in an environment
    variable PG_GRANDPARENT_PID, and teach CreateLockFile() to disregard that PID
    as a false match if it finds it in postmaster.pid.  This allows us to cope
    with one level of postgres-owned shell process even with pg_ctl in the way,
    so it's just as safe as starting the postmaster directly.  You still have to
    be careful about how you write the initscript though.
    
    Adjust the comments in contrib/start-scripts/ to not deprecate use of
    pg_ctl.  Also, fix the ROTATELOGS option in the OSX script, which was
    indulging in exactly the sort of unsafe coding that renders this fix
    pointless :-(.  A pipe inside the "sudo" will probably result in more
    than one postgres-owned process hanging around.
    8f5500e6
pg_ctl.c 47.5 KB