I am using PostgreSQL 9.2 and it runs automatically when I start the system (Kubuntu).
How can I avoid this?
I need to start it manually, and I don't want it to start unattended because I need to look at the console.
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
/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
/usr/sbin/update-rc.d is used to start, stop, enable, or disable services (i.e. remove System-V style init script links from /etc/init.d/).
man update-rc.d to familiarize yourself with the command and its parameters.
Here are some examples from the update-rc.d ubuntu 16.10 (yakkety) manual page:
update-rc.d -f foobar remove update-rc.d foobar stop 20 2 3 4 5
Then type something along the lines of
sudo update-rc.d [service] disable for any service listed in your /etc/init.d/ directory. That will prevent [service] from starting at boot. If you also want to shut down the service immediately, try
sudo service [service] stop
You probably do not need to run PostgreSQL manually in order to see its console output. You just need to log that output, and tail the log file.