The postgreSQL server comes with a wrapper called pg_ctl which will simplify some admin tasks for you.
Check if the variable PGDATA is set:
[postgres@myserver ~]$ echo $PGDATA
/pgdata/data
Check status:
[postgres@myserver ~]$ pg_ctl status
pg_ctl: server is running (PID: 27870)
/usr/pgsql-11/bin/postgres "-D" "/pgdata/data"
If the PGDATA variable is not set in your operating system, you need to specify the D-flag, like this:
[postgres@myserver ~]$ pg_ctl status -D /pgdata/data
pg_ctl: server is running (PID: 27870)
/usr/pgsql-11/bin/postgres "-D" "/pgdata/data"
Check if the database accepts incoming requests:
[postgres@myserver ~]$ pg_isready -d testdb01
/var/run/postgresql:5432 - accepting connections
Stop:
[postgres@myserver ~]$ pg_ctl stop
waiting for server to shut down.... done
server stopped
Start:
[postgres@myserver ~]$ pg_ctl start
waiting for server to start....2019-01-30 10:35:04 CET LOG: listening on IPv4 address "0.0.0.0", port 5432
2019-01-30 10:35:04 CET LOG: listening on IPv6 address "::", port 5432
2019-01-30 10:35:04 CET LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2019-01-30 10:35:04 CET LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
2019-01-30 10:35:04 CET LOG: redirecting log output to logging collector process
2019-01-30 10:35:04 CET HINT: Future log output will appear in directory "log".
done
server started
If your postgres server is running on RHEL7 or newer, you should use systemctl to control the service:
systemctl start postgresql-11
systemctl stop postgresql-11
systemctl restart postgresql-11
systemctl status postgresql-11
Example output(abbreviated) from the status command:
● postgresql-11.service - PostgreSQL 11 database server
Loaded: loaded (/etc/systemd/system/postgresql-11.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-01-08 02:20:51 CET; 1 months 10 days ago
Docs: https://www.postgresql.org/docs/11/static/
Main PID: 1910 (postmaster)
CGroup: /system.slice/postgresql-11.service
├─ 1910 /usr/pgsql-11/bin/postmaster -D /postgres/data
├─ 2047 postgres: logger
├─ 2390 postgres: checkpointer
├─ 2392 postgres: background writer
├─ 2394 postgres: walwriter
├─ 2395 postgres: autovacuum launcher
├─ 2396 postgres: archiver last was 00000001000002360000009A
├─ 2397 postgres: stats collector
├─ 2398 postgres: logical replication launcher
├─ 2766 postgres: postgres_exporter postgres localhost(60360) idle
├─ 3061 postgres: postgres_exporter postgres localhost(44202) idle
├─48217 postgres: postgres postgres [local] idle
If the postgres server is down, and you need to check the current version installed, you can use either of these methods:
which psql
/sw/postgres/pgsql-13/bin/psql
cat /u02/pgdata/datafiles/PG_VERSION
13
cat /etc/PG_VERSION
13.ansible