Uso di postgres con launchd senza problemi costanti

3

Ho postgres e passeggero installati da homebrew, e uso l'os x integrato in apache. Ho diverse app per i binari che utilizzano postgres gestite dai passeggeri che a loro volta sono gestite da apache.

Attualmente apache viene avviato da launchd all'avvio da /System/Library/LaunchDaemons/org.apache.httpd.plist , apache avvia passeggero tramite /etc/apache2/other/passenger.conf e una volta che ho effettuato l'accesso a postgres viene avviato tramite ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist .

Tutto inizia bene e funziona alla grande fino a quando ho bisogno di chiudere o riavviare il mio Mac; poi mi imbatto in un problema con il modo in cui launchd abbatte tutto. Fondamentalmente Launchd invia SIGTERM ad ogni processo utente e poi 20 secondi dopo ( link ) invia SIGKILL, ma postgres considera SIGTERM come un segnale di "spegnimento intelligente" ( link ) e attende che tutte le sessioni esistenti si chiudano prima di uscire. Il problema è che le sessioni sono di proprietà delle app su rotaia in esecuzione su passeggero e pertanto non si spegneranno finché Apache non si spegne. E l'apache non si spegne fino a quando il sistema non si sta spegnendo. Ciò significa che postgres ottiene SIGKILL ed e lascia il suo postmaster.pid file in giro che impedisce a postgres di avviarsi al prossimo avvio fino a quando I rm quel file.

Lo spostamento di launchd di postgres su /Library/LaunchDaemons/ sarebbe un'idea migliore? Potrebbe potenzialmente far sì che postgres e apache si chiudano contemporaneamente, il che con 20 secondi di interruzione dovrebbe essere sufficiente per consentire a Postgres di uscire in modo pulito. Ma potrei mancare una soluzione più semplice.

    
posta Camden Narzt 26.03.2016 - 16:49
fonte

1 risposta

0

Mi sono liberato spostando il postgre launchd plist in / Library / LaunchDaemons e aggiungendo una coppia chiave / valore UserName (postgres non verrà eseguito come root).

    
risposta data 29.04.2016 - 17:03
fonte

Leggi altre domande sui tag