为了教育目的,我在我的机器上运行了两个相同的 postgresql 实例。
我可以轻松停止在端口 5432 上运行的实例的服务,如下所示:
sudo service postgresql stop
我想知道的是如何停止另一个实例(它在端口 5433 上运行)
答案1
pg_ctl
停止 postgreSQL 的 postreSQL 方式是什么(在 Ubuntu 和 Debian 中我们应该使用pg_ctlcluster
它是 的包装器pg_ctl
)。该链接中的示例使用选项“-p 5433”。
正如 naoko 在下面的评论中所建议的,使用pg_lsclusters
它来列出集群。
另一种方法是向正在运行 postgresqld 的进程发出kill
信号。同时停止两者killall postgresqld
可能会有效。
最后,正如 psyCHOder 评论中所建议的,pgAdmin 也可以停止服务器,但这当然意味着安装该包。
答案2
使用 systemctl
sudo systemctl stop postgresql
答案3
在 Ubuntu 中使用 systemctl:
:~/github/kafka/postgres-kafka-demo$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
:~/github/kafka/postgres-kafka-demo$ sudo -u postgres pg_ctlcluster 12 main stop
[sudo] password for :
警告:使用 pg_ctlcluster 停止集群将标记 systemd 单元为失败。考虑使用 systemctl:sudo systemctl stop postgresql@12-main
:~/github/kafka/postgres-kafka-demo$ sudo systemctl stop postgresql@12-main
:~/github/kafka/postgres-kafka-demo$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 down postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
答案4
你可以运行
sudo systemctl stop postgresql[@version-main]
例如,如果你想停止版本 10,请运行
sudo systemctl stop postgresql@10-main