systemctl status failed-et jelez, miután a Postgres-t pg_ctl-lel restartoltam
Sziasztok!
PostgreSQL-el ismerkedem, ezért egy CentOS 7.1-re repo-ból felraktam a 9.4-es verziót. (Az itteni leírás szerint: https://wiki.postgresql.org/wiki/YUM_Installation)
Minden szép és jó, csak egy érdekességre lettem figyelmes a postgres service leállításával/elindításával kapcsolatban.
A start/stop megy a pg_ctl segítségével (pg_ctl stop -m fast; pg_ctl start) illetve systemctl-el is (systemctl stop postgresql-9.4.service; systemctl start postgresql-9.4.service).
Ami érdekes a systemctl status postgresql-9.4.service kimenete, ha pg_ctl-el újra lett indítva a DB:
# systemctl status postgresql-9.4.service
postgresql-9.4.service - PostgreSQL 9.4 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.4.service; enabled)
Active: failed (Result: exit-code) since sze 2015-10-28 14:00:48 CET; 2s ago
Process: 3770 ExecStop=/usr/pgsql-9.4/bin/pg_ctl stop -D ${PGDATA} -s -m fast (code=exited, status=1/FAILURE)
Process: 3754 ExecStart=/usr/pgsql-9.4/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
Process: 3749 ExecStartPre=/usr/pgsql-9.4/bin/postgresql94-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 3759 (code=exited, status=0/SUCCESS)
okt 28 14:00:37 postgresql-test systemd[1]: Starting PostgreSQL 9.4 database server...
okt 28 14:00:37 postgresql-test pg_ctl[3754]: < 2015-10-28 14:00:37.266 CET >LOG: redirecting log output to logging collector process
okt 28 14:00:37 postgresql-test pg_ctl[3754]: < 2015-10-28 14:00:37.266 CET >HINT: Future log output will appear in directory "pg_log".
okt 28 14:00:38 postgresql-test systemd[1]: Started PostgreSQL 9.4 database server.
okt 28 14:00:48 postgresql-test pg_ctl[3770]: pg_ctl: PID file "/var/lib/pgsql/9.4/data/postmaster.pid" does not exist
okt 28 14:00:48 postgresql-test pg_ctl[3770]: Is server running?
okt 28 14:00:48 postgresql-test systemd[1]: postgresql-9.4.service: control process exited, code=exited status=1
okt 28 14:00:48 postgresql-test systemd[1]: Unit postgresql-9.4.service entered failed state.
Azt értem, hogy ha a systemd-t megkerülve birizgáltam a service-t és megváltozott a PID-je, ezért failed a státusz.
De van arra valami megoldás, hogy a systemd-nél kikényszerítsem, hogy az új PID-del futó postgres-t nézze?
Ami megoldást erre találtam az az, hogy pg_ctl stop segítségével megállítom a DB-t, majd systemctl start-tal elindítom, utána active (running) státuszú, amíg a pg_ctl-el megint hozzá nem nyúlok.
- Tovább (systemctl status failed-et jelez, miután a Postgres-t pg_ctl-lel restartoltam)
- 1936 megtekintés