I'm trying to have postgresql 8.4 start on boot on Ubuntu server 10.04 (64bit).
First, I tried putting: su -c 'pg_ctl start -D /home/postgres -l /home/postgres/serverlog' --preserve-environment postgres
at the end of init.d/rc.local
, to no avail. The serverlog file wasn't even on the system.
Then I tried to run update-rc.d postgresql-8.4 defaults
, which spewed out:
System start/stop links for /etc/init.d/postgresql-8.4 already exist.
A relevant piece of info is that by running su -c 'pg_ctl start -D /home/postgres -l /home/postgres/serverlog' --preserve-environment postgres
as root without the --preserve-environment flag, it doesn't recognize pg_ctl. Otherwise, the service starts and I can connect to the DB. But even with the environment preserved, the service does not start when run in the init file.
Any clues? Thanks! Vic.
What does
chkconfig postgresql
report? You should be able to dochkconfig postgresql on
as root in ubuntu to turn it on. see http://manpages.ubuntu.com/manpages/lucid/man8/chkconfig.8.htmlI think you need to explain to us how did you install PostgreSQL.
Did you grab a tarball and compile from scratch? Grab a Debian package? Grab a standard Ubuntu package?
If you grabbed the standard PostgreSQL installer from Ubuntu, you would have run this command:
You should have your PostgreSQL service installed whenever you restart.
To manage the service, you just need to invoke this command:
Or:
Did you do
initdb
as part of your installation? PostgreSQL will refuse to start if the data directory hasn't been created, and in my experience, particularly when trying to start it as a service, that refusal can be quiet and mystifying.Probably all you need to do for postgresql installed from the repo:
this will ensure that postgresql is turned on even after reboots