On 5/6/19 3:46 μ.μ., Domen Šetar wrote:
Hi, I’m using Postgresql 11.3 on Centos 7.6.18.10 server. I have very unusual issue which I don’t know if it is OK: I have running postgresql server with default instance: [root@pgpmaster ~]# systemctl status postgresql-11 ● postgresql-11.service - PostgreSQL 11 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-06-05 14:37:21 CEST; 49s ago Docs: https://www.postgresql.org/docs/11/static/ Process: 3552 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 3576 (postmaster) Tasks: 9 CGroup: /system.slice/postgresql-11.service ├─3576 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/ ├─3609 postgres: logger ├─3621 postgres: checkpointer ├─3622 postgres: background writer ├─3623 postgres: walwriter ├─3624 postgres: autovacuum launcher ├─3625 postgres: archiver ├─3626 postgres: stats collector └─3627 postgres: logical replication launcher Jun 05 14:37:20 pgpmaster.localhost systemd[1]: Starting PostgreSQL 11 database server... Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.923 CEST [3576] LOG: listening on IPv4 address "0.0.0.0", port 5432 Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.924 CEST [3576] LOG: listening on IPv6 address "::", port 5432 Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.928 CEST [3576] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.026 CEST [3576] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.123 CEST [3576] LOG: redirecting log output to logging collector process Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.123 CEST [3576] HINT: Future log output will appear in directory "log". Jun 05 14:37:21 pgpmaster.localhost systemd[1]: Started PostgreSQL 11 database server. If I restart it using systemctl restart postgresql-11 command, everything is OK, but if I use commands: # pg_ctl -D /var/lib/pgsql/11/data/ -m immediate stop # pg_ctl -D /var/lib/pgsql/11/data/ -m immediate start
Don't run those as root. I guess you didn't run pg_ctl as root (since it worked)
Then I get following situtation: # systemctl status postgresql-11 ● postgresql-11.service - PostgreSQL 11 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled) *Active: inactive (dead) since Wed 2019-06-05 14:41:32 CEST; 1min 40s ago* Docs: https://www.postgresql.org/docs/11/static/ Process: 3576 ExecStart=/usr/pgsql-11/bin/postmaster -D ${PGDATA} (code=exited, status=0/SUCCESS) Process: 3552 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 3576 (code=exited, status=0/SUCCESS) Jun 05 14:37:20 pgpmaster.localhost systemd[1]: Starting PostgreSQL 11 database server... Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.923 CEST [3576] LOG: listening on IPv4 address "0.0.0.0", port 5432 Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.924 CEST [3576] LOG: listening on IPv6 address "::", port 5432 Jun 05 14:37:20 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:20.928 CEST [3576] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.026 CEST [3576] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.123 CEST [3576] LOG: redirecting log output to logging collector process Jun 05 14:37:21 pgpmaster.localhost postmaster[3576]: 2019-06-05 14:37:21.123 CEST [3576] HINT: Future log output will appear in directory "log". Jun 05 14:37:21 pgpmaster.localhost systemd[1]: Started PostgreSQL 11 database server. # ps agx | grep postgre 4592 pts/0 S 0:00 /usr/pgsql-11/bin/postgres -D /var/lib/pgsql/11/data 4593 ? Ss 0:00 postgres: logger 4595 ? Ss 0:00 postgres: checkpointer 4596 ? Ss 0:00 postgres: background writer 4597 ? Ss 0:00 postgres: walwriter 4598 ? Ss 0:00 postgres: autovacuum launcher 4599 ? Ss 0:00 postgres: archiver 4600 ? Ss 0:00 postgres: stats collector 4601 ? Ss 0:00 postgres: logical replication launcher 4630 pts/0 S+ 0:00 grep --color=auto postgre $ pg_ctl -D /var/lib/pgsql/11/data/ status pg_ctl: server is running (PID: 4592) /usr/pgsql-11/bin/postgres "-D" "/var/lib/pgsql/11/data" Systemctl shows that database is dead, but it is actually running. Can someone explain this behavioure?
if you bypass systemctl then systemd has no way to tell if the service is up or down just by grep.
Best regards! izum Domen Šetar /Computer Systems Support/ IZUM – Institute of Information Science| Prešernova ulica 17 | 2000 Maribor |Slovenia/ /T: +386 2 25 20 339| M: +386 41 676 342| www.izum.si <http://www.izum.si/>|domen.se...@izum.si <mailto:domen.se...@izum.si>
-- Achilleas Mantzios IT DEV Lead IT DEPT Dynacom Tankers Mgmt