J'ai trouvé que postgresql v9.0.7 s'exécute en mode bg par défaut quand il est démarré (commande ci-dessous). Plus tôt, lorsque nous utilisions postgresql v7.4.2, il fonctionnait en mode de premier plan. J'utilise l'environnement freebsd 8.2 64 bits. Postgresql v9.0.7 est construit avec les options WITHOUT_XML, WITHOUT_GETTEXT et WITHOUT_GNUGEOPT.Postgresql 9.0 fonctionne en bg par défaut
c670e04: rkananth 16]/usr/local/bin/postgres --version postgres (PostgreSQL) 9.0.7
c670e04:rkananth 7] setenv PGDATA /data/db/postgres/
c670e04:rkananth 11] /data/bin/runas pgsql /usr/local/bin/postgres
c670e04:rkananth 12] ps -A | grep post
65165 ?? Ss 0:00.01 /usr/local/bin/postgres
65167 ?? Ss 0:00.00 postgres: writer process (postgres)
65168 ?? Ss 0:00.00 postgres: wal writer process (postgres)
65169 ?? Ss 0:00.00 postgres: autovacuum launcher process (postgres)
65170 ?? Ss 0:00.00 postgres: stats collector process (postgres)
65224 0 S+ 0:00.00 grep post
c670e04:rkananth 14] ps -p 65165 -o ppid
PPID
1
c670e04:rkananth 15] ps 1
PID TT STAT TIME COMMAND
1 ?? SLs 0:00.17 /sbin/init --
c670e04:rkananth 16]
Existe-t-il un moyen où je peux le forcer à venir au premier plan?
En regardant également le journal ci-dessus, cela montre que le parent du processus serveur est défini sur 1 (init) est-ce un comportement attendu lorsque le serveur fonctionne en mode bg? Cependant, la documentation de 9.0.7 indique que, par défaut, elle devrait être au premier plan. Pourquoi cela ne se produit-il pas dans mon cas, peut-être un bug?
Mise à jour 1: /data/bin/runas n'introduit aucun changement de comportement, testé sans elle. Le même comportement est également visible dans v8.3 et sur l'environnement 32 bits FreeBSD 7.2.
Le processus serveur devenant enfant de PID 1 (init) ressemble à un comportement standard d'une application s'exécutant en tant que démon.
Ma question est maintenant - Y a-t-il un moyen de demander à Postgres de ne pas fonctionner en tant que démon?
Mise à jour 2: Got la solution est la config « silent_mode = off » (Par défaut, il est activé) va le faire pour exécuter au premier plan et le processus fonctionne comme processus enfant de la coquille. Avec cela, la question est répondue. (Source - http://postgresql.1045698.n5.nabble.com/BUG-4381-Postgresql-daemon-won-t-stay-in-the-foreground-td2127518.html)
Je suis curieux (je n'ai pas vraiment d'expérience avec * nix): quelle différence cela fait-il? –
Il ne le fait pas sur linux, auto-compilé. Êtes-vous sûr à 100% que '/ usr/local/bin/postgresql' est le binaire postgres réel et non un wrapper?Et est-ce auto-compilé ou pré-compilé? –
Daniel: Je suis sûr à 100% que/usr/local/bin/postgresql est le bon binaire. J'ai testé sur l'installation auto-compilée ainsi que l'installation via les ports. Le même comportement est vu. –