У меня проблемы с перезапуском докеризованной базы данных postgres (я использую Core OS). База данных запускается в bash-скрипте с помощью команды
# boot.sh
sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf
который работает. У меня есть другой скрипт, вызываемый confd, который запускается при изменении некоторых ключей etcd (эта часть в порядке, файл называется правильно) и должен перезапускать postgres (не перезагружать, потому что некоторые изменения конфигурации требуют перезапуска). Вот основные варианты, которые я пробовал, но они не увенчались успехом...
# restart.sh
sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl --pgdata=/var/lib/postgresql/9.3/main restart
систематически выдает ошибку:
%FATAL: lock file "postmaster.pid" already exists
%HINT: Is another postmaster (PID 273) running in data directory "/var/lib/postgresql/9.3/main"?
Более того,
# restart.sh
rm /var/lib/postgresql/9.3/main/postmaster.pid
sudo -i -u postgres /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf
,
rm /var/lib/postgresql/9.3/main/postmaster.pid
/etc/init.d/postgresql start
,
/etc/init.d/postgresql restart
а также
exec su postgres -c "/usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf"
потерпеть неудачу с
ERROR exit status 1
Любая мысль? Заранее спасибо!
sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D /var/lib/postgresql/9.3/main
. (Я не вижу этого синтаксиса в вашем вопросе.) С другой стороны, я не запускаю его в контейнере Docker. - person Mike Sherrill 'Cat Recall'   schedule 14.11.2014