服务运行多次?

服务运行多次?

我在 debian squeeze 上安装了一个 postgres db。有一个 /etc/init.d/postresql 来控制数据库。当我输入 时pstree -c,我得到了两个 postgresql 跟踪。之后/etc/init.d/postgresl stop我仍剩下一个 postgresql 跟踪。我应该在哪里查找这个问题?是否有一个条目可以在启动时启动另一个 postgresql?我在哪里可以看到它?

答案1

假设你已经从存储库包安装了 PostgreSQL(例如postgresql-8.4)如果第二个集群(比方说test)设置为manual模式,这是完全可能的:

cat /etc/postgresql/8.4/test/start.conf 
# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
#         pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
#           circumvented and is only meant to be a small protection for
#           accidents).

manual

您可以通过pg_lsclusters命令检查所有注册的集群:

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 online postgres /var/lib/postgresql/8.4/main       /var/log/..
8.4     test      5433 online postgres /var/lib/postgresql/8.4/test       /var/log/..

pstree -c | grep postgres结果:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres
 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres

手动模式(与auto)表示数据库集群不是由脚本处理/etc/init.d/postgresql,因此之后:

# /etc/init.d/postgresql stop

仍有一个工作服务器实例:

参见 pg_lsclusters
版本 集群 端口状态 所有者 数据目录 日志文件
8.4 主要 5432向下   postgres /var/lib/postgresql/8.4/main /var/log/..
8.4 测试 5433在线的postgres /var/lib/postgresql/8.4/test /var/log/..

pstree返回剩余的痕迹:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          `-postgres

要关闭剩余的实例,请明确使用:

# pg_ctlcluster 8.4 test stop

相关内容