Sto utilizzando Fabric per inizializzare un server Postgres. Devo aggiungere un "sonno 1" alla fine del comando oi processi postgres server di morire senza spiegazioni o di un'iscrizione nel registro:Perché è necessario il riposo dopo la chiamata fabric a pg_ctl restart
sudo('%(pgbin)s/pg_ctl -D %(pgdata)s -l /tmp/pg.log restart && sleep 1' % env, user='postgres')
vale a dire, vedo questa uscita sul terminale:
[dbserv] compito esecuzione '' setup_postgres
[dbserv] eseguire:/bin/bash -l -c "sudo -u postgres /usr/lib/postgresql/9.1/bin/pg_ctl -D/dati/pg -l /tmp/pg.log restart & & sleep 1 "
[dbserv] out: in attesa che il server si spenga .... done
[dbserv] out: server ha smesso
[dbserv] out: i processi del server a partire
Senza il && sleep 1
, non c'è nulla in /tmp/pg.log (anche se il file viene creato), e non sono Postgres in esecuzione. Con il sonno, tutto funziona bene.
(E se eseguo lo stesso comando direttamente sulla riga di comando del computer di destinazione, funziona benissimo senza il sonno.)
Dal momento che sta funzionando, non è così davvero materia, ma mi sto chiedendo in ogni caso : Qualcuno sa che cosa sta permettendo il sonno e perché?
Sì, funziona al posto del sonno. Mi piacerebbe votare, ma mi manca la reputazione. – wouldnt
Odio quella parte di questo sito in realtà. Ti impedisce anche di accettare anche tu? È strano come la funzionalità costringa i nuovi utenti a essere in grado di fare solo domande, invece di chiedere/rispondere. – Morgan
IMHO, non * realmente * risponde alla domanda poiché non dice cosa sta succedendo sotto il cofano, ma se non ci sono altre risposte in pochi giorni, accetterò la risposta. – wouldnt