We will guide you through the steps to set up PostgreSQL to start automatically on Ubuntu boot.
PostgreSQL is a popular open-source relational database management system used by many developers and organizations worldwide. In Ubuntu, you can configure PostgreSQL to start automatically upon system boot, ensuring that your database server is always up and running.
Prerequisites:
Before we begin, make sure you have the following prerequisites in place:
- Ubuntu operating system installed on your machine.
- PostgreSQL database installed on your Ubuntu system.
- Administrative privileges or sudo access to execute commands.
Table of Contents
Step 1: Confirm PostgreSQL Installation
First, let’s verify that PostgreSQL is installed on your Ubuntu system. Open a terminal and execute the following command:
$ psql --version
This command will display the version of PostgreSQL installed. If PostgreSQL is not installed, you can install it using the following command:
$ sudo apt update
$ sudo apt install postgresql
Step 2: Enable Auto Start
Ubuntu uses a service management system called systemd
to manage services, including PostgreSQL. To enable PostgreSQL to start automatically on boot, we need to create a systemd
unit file.
- Open a terminal and create a new unit file using the following command:
$ sudo nano /etc/systemd/system/postgresql.service
- Add the following content to the file:
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
[Service]
Type=notify
User=postgres
ExecStart=/usr/lib/postgresql/<version>/bin/postgres -D /var/lib/postgresql/<version>/main -c config_file=/etc/postgresql/<version>/main/postgresql.conf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target
Make sure to replace <version>
with the specific version of PostgreSQL installed on your system. For example, if you have PostgreSQL 12, the paths will be /usr/lib/postgresql/12/bin/postgres
, /var/lib/postgresql/12/main
, and /etc/postgresql/12/main/postgresql.conf
.
- Save the file and exit the text editor.
Step 3: Configure Permissions and Reload systemd
Now, we need to set the appropriate permissions on the systemd
unit file and reload the systemd
daemon.
- Set the correct ownership and permissions on the unit file:
$ sudo chown root:root /etc/systemd/system/postgresql.service
$ sudo chmod 644 /etc/systemd/system/postgresql.service
- Reload the
systemd
daemon to load the newly created unit file:
$ sudo systemctl daemon-reload
Step 4: Enable and Start PostgreSQL Service
With the systemd
unit file in place, we can now enable and start the PostgreSQL service.
- Enable the PostgreSQL service to start automatically on boot:
$ sudo systemctl enable postgresql
- Start the PostgreSQL service:
$ sudo systemctl start postgresql
- Verify that PostgreSQL is running properly:
$ sudo systemctl status postgresql
The status command should indicate that PostgreSQL is active and running. You can also connect to the database using the psql
command to further validate its functionality.
Step 5: Reboot and Test
To ensure that PostgreSQL starts automatically on system boot, it is recommended to reboot your Ubuntu machine:
$ sudo reboot
After the reboot, PostgreSQL should automatically start. To confirm this, follow these steps:
- After the reboot, log in to your Ubuntu system.
- Open a terminal and execute the following command to check the status of the PostgreSQL service:
$ sudo systemctl status postgresql
The output should indicate that the PostgreSQL service is active and running.
If the connection is successful, you will be greeted with the PostgreSQL command prompt.
You have successfully set up PostgreSQL to start automatically on Ubuntu. From now on, PostgreSQL will automatically start whenever your Ubuntu system boots up, ensuring the availability of your database server.