Tôi gặp khó khăn khi khởi động lại cơ sở dữ liệu poster của dockerized (Tôi sử dụng Core OS). Cơ sở dữ liệu được bắt đầu bằng tập lệnh bash bằng cách sử dụng lệnhKhởi động lại postgres trong môi trường docker
# 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
hoạt động. Tôi có một kịch bản khác gọi là confd được chạy khi một số phím thay đổi (phần này là ok, tập tin được gọi chính xác) và phải khởi động lại postgres (không tải lại, vì một số thay đổi cấu hình yêu cầu khởi động lại). Dưới đây là các tùy chọn chính tôi đã cố gắng, mà thất bại ...
# restart.sh
sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl --pgdata=/var/lib/postgresql/9.3/main restart
tăng một cách hệ thống một lỗi:
%FATAL: lock file "postmaster.pid" already exists
%HINT: Is another postmaster (PID 273) running in data directory "/var/lib/postgresql/9.3/main"?
Hơn nữa,
# 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
và
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"
thất bại với
ERROR exit status 1
Bất kỳ suy nghĩ? Cảm ơn bạn trước!
Một mặt, restart.sh chỉ bao gồm dòng này hoạt động mà không có lỗi trên máy chủ Ubuntu của tôi: 'sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D/var/lib/postgresql/9.3/main'. (Tôi không thấy cú pháp này trong câu hỏi của bạn.) Mặt khác, tôi không chạy nó trong vùng chứa Docker. –
Cảm ơn Mike, nó hoạt động trên một máy chủ ubuntu. Vấn đề dường như được gắn với Core OS hoặc Docker, nhưng tôi chưa biết chính xác những gì nó bao gồm ... – Raphael
thử thêm –cap-thêm SYS_PTRACE vào lệnh docker run của bạn –