pid-файл исчезает после запуска pgpool с ubuntu и postgresql

Я установил postgresql 9.1 на Ubuntu 12.04 с pgpoolII-3.3.3 и pgPoolAdmin.

Если я попытаюсь запустить pgpool из терминала с помощью sudo pgpool, он запустится. Просматривая файловый менеджер ubuntu, я вижу, как файл pgpool.pid создается в /var/run/pgpool/pgpool.id (это путь в pgpool.conf)

Но через секунду файл исчезает.

Я пытался изменить владельца каталога и права доступа к каталогу, но, похоже, ничего не исправить.

Если после этого я попытаюсь остановить pgpool с помощью sudo pgpool -m fast stop, я получу ошибку: Ошибка. pid-файл не найден

Похоже, что файл создается и внезапно уничтожается. Мне интересно, почему.

Если я попытаюсь запустить pgpool из pgPoolAdmin, я получу эту ошибку: запуск pgpool не выполнен. pgpool.pid не найден.

Как и в других случаях, это может быть и глупая проблема, и я не могу ее решить, так как у меня нет высокого уровня знаний об этих системах.

Любая идея о том, что попробовать?

С Рождеством


person Cesar    schedule 24.12.2014    source источник
comment
Может быть, не файл pid уничтожается, а процесс pgpool запускается и по какой-то причине прерывается (и это причина того, что файл появляется и исчезает)?   -  person Cesar    schedule 26.12.2014


Ответы (3)


проверьте каталог tmp с помощью команды ls -la и удалите файлы .s.PGSQL.9999 и .s.PGSQL.9898 и перезапустите сервер

person Anup Gupta    schedule 12.09.2017

Решено. Я думаю, что проблема была вызвана проблемой разрешения. После попытки

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

Кажется, теперь это работает.

person Cesar    schedule 01.01.2015

При настройке PgPool-II я обнаружил некоторую документацию. объясняя, что использование каталога по умолчанию /var/run/pgpool для файла PID было плохой идеей, поскольку этот файл мог быть стерт при перезагрузке службы.

Содержимое каталога /var/run (включая каталог pgpool) может быть удалено операционной системой во время перезагрузки. Каталог /var/run/pgpool НЕ ДОЛЖЕН использоваться в качестве места для файла pgpool.pid.

Проблема возникает, когда используется Ubuntu.

Таким образом, возможным решением было бы сохранить файл PID в каталоге с таким именем, чтобы оно не совпадало с именем службы, которую можно было бы перезагрузить. Например, вы можете изменить файл pgpool.conf:

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

Я не мог попробовать это самостоятельно, так как не использую Ubuntu, но, возможно, это может помочь кому-то, столкнувшемуся с подобной проблемой. Хотя я не уверен, что очень разумно отказываться от базового способа работы Ubuntu....

person The Once-ler    schedule 12.06.2018