You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18系统中PostgreSQL 12服务状态查询命令差异及重启命令选择

Ubuntu 18系统中PostgreSQL 12服务状态查询命令差异及重启命令选择

嗨,我来帮你搞明白这两个命令的区别,以及该选哪个来重启你的PostgreSQL 12~

一、两个状态查询命令的差异

你遇到的情况其实是PostgreSQL在Ubuntu系统上的服务管理特性导致的:

  1. sudo service postgresql status
    这个命令查看的是PostgreSQL的主伞形服务单元,它相当于一个"总开关",用来统一管理系统上所有版本的PostgreSQL集群。在你的Ubuntu 18环境里,这个主服务被设置为disabled且inactive (dead),但这完全不影响单个集群的运行——因为默认情况下,PostgreSQL是按独立集群来启动的,主服务本身并不直接运行数据库实例。

你执行这个命令得到的输出是:

postgresql.service - PostgreSQL RDBMS

Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)

Active: inactive (dead)
  1. systemctl status postgresql@12-main
    这个命令则是直接查看PostgreSQL 12版本的默认集群服务,其中12是数据库版本号,main是默认的集群名称。这个才是真正运行数据库实例、提供连接服务的单元,所以你看到它处于active (running)状态,这也是为什么你能正常连接数据库的原因。

对应的输出:

root@db-services:/# systemctl status postgresql@12-main

● postgresql@12-main.service - PostgreSQL Cluster 12-main

Loaded: loaded (/etc/systemd/system/postgresql@12-main.service; enabled; vendor preset: enabled)

Drop-In: /etc/systemd/system/postgresql@12-main.service.d
└─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/postgresql@12-main.service
├─ 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

二、重启命令的选择

毫无疑问,你应该使用systemctl restart postgresql@12-main来重启你的PostgreSQL 12实例:

  • 这个命令直接针对正在运行的集群服务操作,精准且不会影响其他可能存在的PostgreSQL集群(哪怕现在没有,养成这个习惯也很重要)。
  • 而sudo service postgresql restart会尝试重启那个主伞形服务,但它本身处于inactive状态,即使强制重启,也会触发所有PostgreSQL集群的重启(如果有多个的话),这显然不是你想要的。

备注:内容来源于stack exchange,提问作者padjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:35:27