2014-11-14 21 views
5

Ho problemi a riavviare un database postgres ancorata (utilizzo il sistema operativo principale). Il database viene avviato in uno script bash utilizzando il comandoRiavvio postgres in un ambiente finestra mobile

# 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 

che funziona. Ho un altro script chiamato da confd che viene eseguito quando alcune chiavi etcd cambiano (questa parte è ok, il file è chiamato correttamente) e deve riavviare postgres (non ricaricare, perché alcune modifiche di configurazione richiedono un riavvio). Ecco le principali opzioni che ho provato, che non è riuscito ...

# restart.sh 
sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl --pgdata=/var/lib/postgresql/9.3/main restart 

solleva sistematicamente un errore:

%FATAL: lock file "postmaster.pid" already exists 
%HINT: Is another postmaster (PID 273) running in data directory "/var/lib/postgresql/9.3/main"? 

Inoltre,

# 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 

e

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" 

falliscono con

ERROR exit status 1 

Ogni pensiero? Grazie in anticipo!

+0

Da un lato, un restart.sh costituito da questa linea funziona senza errori sul mio server Ubuntu: 'sudo -i -u postgres /usr/lib/postgresql/9.3/bin/pg_ctl restart -D/var/lib/postgresql/9.3/main'. (Non vedo questa sintassi nella tua domanda.) D'altra parte, non lo sto eseguendo in un contenitore Docker. –

+0

Grazie Mike, funziona su un server Ubuntu. Il problema sembra essere legato a Core OS o Docker, ma non so ancora esattamente in cosa consista ... – Raphael

+0

prova ad aggiungere -cap-add SYS_PTRACE al comando di esecuzione della finestra mobile –

risposta

3

Per me, la modifica della configurazione e facendo

$ docker restart <postgres_container> 

sull'host funziona bene.

+0

Funziona come un incantesimo per me. –

Problemi correlati