在docker环境中重新启动postgres
我有麻烦重新启动dockerized postgres数据库(我使用核心操作系统)。 数据库使用该命令在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(不重新载入,因为一些configuration更改需要重新启动)。 这是我尝试的主要选项,失败了…
# 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
任何想法? 先谢谢你!
对我来说,改变configuration和做
$ docker restart <postgres_container>
在主机上工作得很好。