在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> 

在主机上工作得很好。

Interesting Posts