PID文件在使用Ubuntu和PostgreSQL启动PGPOOL后消失



我已经在 ubuntu 12.04 上安装了 postgresql 9.1 和 pgpoolII-3.3.3 和 pgPoolAdmin

如果我尝试从带有 sudo pgpool 的终端运行 pgpool,它似乎会启动。查看 ubuntu 文件资源管理器我可以看到如何在/var/run/pgpool/pgpool.id 上创建 pgpool.pid 文件(这是 pgpool.conf 中的路径)

但是一秒钟后,文件消失了。

我试图更改目录的所有者和目录权限,但似乎没有什么可以解决它。

如果在那之后我尝试使用 sudo pgpool 停止 pgpool -m 快速停止,我得到一个错误:错误。 找不到 pid 文件

似乎文件已创建并突然销毁。我想知道为什么。

如果我尝试从 pgPoolAdmin 运行 pgpool,我得到这个错误:pgpool 启动失败。

像其他时候一样,这可能是愚蠢的问题,我无法解决它,因为我对这些系统没有很高的了解。

知道要尝试什么吗?

Xrry 圣诞节

已解决。我认为问题是由权限问题引起的。尝试后

sudo mkdir /var/run/pgpool
sudo chmod 777 /var/run/pgpool
sudo chown postgres/postgres /var/run/pgpool
sudo postgresql service restart

它现在似乎正在工作。

使用 ls -la 命令检查 tmp 目录并删除文件 .s.PGSQL.9999 和 .s.PGSQL.9898 并重新启动服务器

在配置 PgPool-II 时,我找到了一些文档,解释对 PID 文件使用默认目录/var/run/pgpool 是一个坏主意,因为当服务重新启动时,该文件可能会被删除。

/

var/run 目录的内容(包括 pgpool 目录)可能会在重新启动期间作系统删除。这 /var/run/pgpool 目录不应用作 pgpool.pid 文件。

使用Ubuntu时似乎会出现此问题。

因此,一个可能的解决方案是将PID文件存储在名为"与可以重新启动的服务的名称不匹配的目录中"。例如,您可以更改 pgpool.conf 文件:

 pid_file_name = '/var/run/pgpool4ever/pgpool.pid'

由于我不使用 Ubuntu,我无法自己尝试,但也许这可以帮助面临类似问题的人。虽然我不确定超越基本 Ubuntu 的工作方式是否非常明智......

最新更新