Estoy a punto de reiniciar el servicio postgresql 12 ejecutándose en Ubuntu 18. Primero, verifico su estado sudo service postgresql status
:. Su dice:
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor pres
Active: inactive (dead)
lines 1-3/3 (END)...skipping...
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Aunque parece estar inactivo, todavía puedo conectarme.
Luego ejecuto otra comprobación: systemctl status postgresql@12-main
. dice :
root@db-services:/# systemctl status postgresql@12-main
● [email protected] - PostgreSQL Cluster 12-main
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/[email protected]
└─override.conf
Active: active (running) since Mon 2022-06-13 09:02:25 WIB; 5 months 27 days ago
Main PID: 5807 (postgres)
Tasks: 86 (limit: 4915)
CGroup: /system.slice/system-postgresql.slice/[email protected]
├─ 1586 postgres: 12/main: postgres db_sync 10.100.3.248(61414) idle
├─ 1588 postgres: 12/main: postgres db_sync 10.100.3.248(61415) idle
├─ 1606 postgres: 12/main: docreg db_docreg 10.100.8.150(18385) idle
├─ 1607 postgres: 12/main: docreg db_docreg 10.100.8.150(18399) idle
├─ 1608 postgres: 12/main: docreg db_docreg 10.100.8.150(18401) idle
├─ 1609 postgres: 12/main: docreg db_docreg 10.100.8.150(18421) idle
├─ 2592 postgres: 12/main: docudigtl db_docudigtl 10.100.8.112(34956) idle
├─ 3518 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48290) idle
├─ 5150 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(61504) idle
├─ 5807 /usr/lib/postgresql/12/bin/postgres -D /data/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.co
├─ 5883 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48626) idle
├─ 6316 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48704) idle
├─ 7049 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(48870) idle
├─ 7986 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(56240) idle
├─ 8146 postgres: 12/main: docudigtl db_docudigtl 10.100.8.114(47432) idle
├─ 8183 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49022) idle
├─ 8360 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49036) idle
├─ 8445 postgres: 12/main: docudigtl db_docudigtl 10.100.8.114(47478) idle
├─ 9590 postgres: 12/main: docudigtl db_docudigtl 10.100.8.106(56094) idle
├─ 9687 postgres: 12/main: docudigtl db_docudigtl 10.100.8.112(50980) idle
├─10148 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(40646) idle
├─10324 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(40680) idle
├─11079 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49496) idle
├─11602 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(58152) idle
├─11886 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(44674) idle
├─12106 postgres: 12/main: docudigtl db_docudigtl 127.0.0.1(49618) idle
├─13112 postgres: 12/main: docudigtl db_docudigtl 10.100.6.145(55014) idle
├─13122 postgres: 12/main: docudigtl db_docudigtl 10.100.6.145(55015) idle
├─13145 postgres: 12/main: docudigtl db_mysapk 10.100.6.145(55016) idle
├─13202 postgres: 12/main: docudigtl db_docudigtl 10.100.7.114(62073) idle
├─13945 postgres: 12/main: checkpointer
├─13946 postgres: 12/main: background writer
├─13947 postgres: 12/main: walwriter
├─13948 postgres: 12/main: autovacuum launcher
├─13949 postgres: 12/main: stats collector
├─13950 postgres: 12/main: logical replication launcher
¡Entonces está realmente activo!
- ¿Cuál es la diferencia entre los 2 comandos?
- ¿Cuál debo usar para reiniciar:
systemctl restart postgresql@12-main
Osudo service postgresql restart
?
Respuesta1
Hay servicios especiales del sistema llamadosservicios de plantilla.
Un servicio de plantilla puede tomar un argumento como este: template_service@argument
.
Un servicio de plantilla nunca se inicia por sí solo, pero se puede crear una instancia de él con un argumento determinado. Esto significa que el mismo servicio (plantilla) puede estar ejecutándose en varias instancias, cada una identificada por su argumento. Por ejemplo:
systemctl inicio template_service@a
systemctl inicio template_service@b
systemctl inicio template_service@c
En Debian y algunas distribuciones derivadas (como Ubuntu):
Cada instancia (clúster) de PostgreSQL pertenece a un postgresql@
servicio de plantilla instanciado. El argumento del postgresql@
servicio toma la forma de version-clustername
.
Entonces, por ejemplo, postgresql@12-main
es un servicio systemd que representa una instancia (clúster) de servidor PostgreSQL 12, con el nombre del clúster main
(que es el predeterminado).
Hay otro servicio systemd llamado simplemente postgresql
. Se trata de una especie de servicio que lo abarca todo. Si lo inicia o lo detiene, todas las instancias de PostgreSQL se iniciarán o detendrán (este comportamiento se puede deshabilitar enstart.conf
).
Sin embargo, no puede utilizar systemctl status postgresql
para comprobar si se está ejecutando algún servicio PostgreSQL, incluso si solo tiene un único servidor PostgreSQL configurado en su sistema. Siempre debe verificar el estado del servicio instanciado en particular para obtener un informe de estado significativo.
Elservice
El comando se usó para el antiguo sistema de inicio (SysV init), antes de que apareciera systemd. Todavía funciona para la compatibilidad con versiones anteriores, pero realmente deberías usar el systemctl
comando en sistemas donde systemd está disponible.