5
我遇到了重新啓動dockerized postgres數據庫(我使用Core OS)的麻煩。該數據庫使用命令在一個bash腳本中啓動在碼頭環境中重新啓動postgres
# 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
任何想法?先謝謝你!
一方面,包含這條線的restart.sh在我的Ubuntu服務器上沒有錯誤地運行:'sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D/var/LIB/PostgreSQL的/ 9.3/main'。 (我在你的問題中沒有看到這個語法。)另一方面,我沒有在Docker容器中運行它。 – 2014-11-14 17:34:43
感謝邁克,它在ubuntu服務器上工作。這個問題似乎與核心操作系統或Docker有關,但我不知道它究竟是什麼...... – Raphael 2014-11-14 17:40:29
嘗試添加-cap-add SYS_PTRACE到您的碼頭運行命令 – 2014-11-14 18:31:58