Serviços executando várias vezes?

2

Eu instalei um banco de dados postgres no meu squeeze debian. Existe um /etc/init.d/postresql para controlar o banco de dados. Quando eu digito pstree -c , recebo dois traços com postgresql. Depois de /etc/init.d/postgresl stop , ainda resta um traço com o postgresql. Onde devo procurar esse problema? Existe uma entrada para iniciar outro postgresql no momento da inicialização? Onde posso ver isso?

    
por strauberry 01.08.2011 / 15:31

1 resposta

1

Supondo que você tenha o PostgreSQL instalado a partir de pacotes de repositórios (por exemplo, postgresql-8.4 ), isso é perfeitamente possível se segundo cluster (digamos que test ) está definido no modo manual :

cat /etc/postgresql/8.4/test/start.conf 
# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
#         pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
#           circumvented and is only meant to be a small protection for
#           accidents).

manual

Você pode verificar todos os clusters registrados pelo comando pg_lsclusters :

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 online postgres /var/lib/postgresql/8.4/main       /var/log/..
8.4     test      5433 online postgres /var/lib/postgresql/8.4/test       /var/log/..

pstree -c | grep postgres result:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          '-postgres
 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          '-postgres

Modo manual (como oposto a auto ) significa que o cluster de BD não é tratado pelo script /etc/init.d/postgresql , portanto, após:

# /etc/init.d/postgresql stop

ainda há uma instância do servidor em funcionamento:

pg_lsclusters 
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5432 down   postgres /var/lib/postgresql/8.4/main       /var/log/..
8.4     test      5433 online postgres /var/lib/postgresql/8.4/test       /var/log/..

e pstree retornam o rastreio restante:

 |-postgres-+-postgres
 |          |-postgres
 |          |-postgres
 |          '-postgres

Para encerrar a instância restante, use explicitamente:

# pg_ctlcluster 8.4 test stop
    
por 12.08.2011 / 10:58