How to stop postgres from autostarting during start up

Solution 1:

On Ubuntu 16.04 or later (which use systemd) you'd use this command

sudo systemctl disable postgresql

If you want to re-enable, you'd do

sudo systemctl enable postgresql

On Ubuntu 15.10 and older, you can use update-rc.d:

janus@Zeus:~$ sudo update-rc.d -f postgresql remove
 Removing any system startup links for /etc/init.d/postgresql ...
   /etc/rc0.d/K21postgresql
   /etc/rc1.d/K21postgresql
   /etc/rc2.d/S19postgresql
   /etc/rc3.d/S19postgresql
   /etc/rc4.d/S19postgresql
   /etc/rc5.d/S19postgresql
   /etc/rc6.d/K21postgresql
janus@Zeus:~$

Solution 2:

Using update-rc.d is better but you can do it with chkconfig:

sudo apt-get install chkconfig
sudo chkconfig -s  postgresql off

In Ubuntu 12.04, you also need to create a symlink to insserv's location:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Solution 3:

This can help you: http://www.linuxquestions.org/questions/linux-general-1/how-to-remove-postgresql-from-startup-481963/#post2417585

But install chkconfig first:

sudo apt-get install chkconfig

and then use it

chkconfig

Solution 4:

The answers in here are outdated. Take a look at Daniel Vérité's answer on Preventing PostgreSQL from starting on boot in Ubuntu - Database Administrators Stack Exchange.

Ubuntu or Debian can run multiple instances of PostgreSQL and provide a specific way to autostart/stop/start each cluster.

There should be a file named start.conf inside /etc/postgresql/9.2/main (or more generally /etc/postgresql/<version>/<clustername>) with these self-explanatory contents:

# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
#         pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
#           circumvented and is only meant to be a small protection for
#           accidents).

auto 

If you replace auto by manual, you could start this PostgreSQL instance only when desired with the command:

sudo pg_ctlcluster 9.2 main start

As for looking at the console, what you should want instead is having this run in a terminal when you work with the database:

tail -f /var/log/postgresql/postgresql-9.2-main.log