O PostgreSQL não possui nome de serviço no CentOS

4

Eu instalei o PostgreSQL de uma maneira bem padronizada no CentOS 5.5:

rpm -ivh http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
yum install postgresql90-server postgresql90-contrib
chkconfig postgresql-90 on
/etc/init.d/postgresql-90 initdb

Mas, por algum motivo, não consigo usá-lo com o comando service porque ele não tem nome, por exemplo, se eu service --status-all , recebo o seguinte:

master (pid 3095) is running...
 (pid 3009) is running...
rdisc is stopped

Ou apenas /etc/init.d/postgresql-90 status :

 (pid 3009) is running...

Então, como posso dar um nome para que eu não tenha que digitar todo o caminho do script de inicialização?

    
por Kyle MacFarlane 12.03.2011 / 00:55

1 resposta

3

O nome do serviço é apenas o nome do script, por exemplo, postgresql-90 .

No entanto, acabei de instalar o postgres seguindo seus comandos acima do script init, que na verdade é chamado postgresql-9.0 , não postgresql-90 .

$ sudo /sbin/service postgresql-9.0 status
 (pid  16670) is running...

Tenho certeza que você está morrendo de vontade de saber por que não lhe diz o nome do serviço, não é? É porque /etc/rc.d/init.d/postgresql-9.0 não chama a função status corretamente:

status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid

De /etc/rc.d/init.d/functions :

status() {
        local base pid pid_file=

        # Test syntax.
        if [ "$#" = 0 ] ; then
                echo $"Usage: status [-p pidfile] {program}"
                return 1
        fi
        ...

Assim /etc/rc.d/init.d/postgresql-9.0 deve ser

status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid $0

e a saída está correta:

$ sudo /sbin/service postgresql-9.0 status
postgresql-9.0 (pid  16670) is running...
    
por 12.03.2011 / 01:41

Tags