Introduciendo ps (ps u -C postmaster) no me mostraba nada, sin envargo he
conseguido hacerlo funcionar por otro lado, resulta que me faltaba hacer
esto:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

Parece que ahora funciona, ya he creado un usuario para la base de datos, y
ahora voy a crear una tabla. Muchas gracias a todos :).

2011/6/21 Alvaro Herrera <[email protected]>

> Excerpts from David Hernández's message of mar jun 21 04:16:41 -0400 2011:
> > Gracias a todos. Jejeje se nota que soy usuario novato de linux (bueno no
> > novato, pero si no muy experimentado :P).
> > He comprovado que el servidor este lanzado (ps -ef|grep postgres) y me
> > aparece funcionando, y lanzado por el root (o al menos me aparece el root
> al
> > principio de la linea), no deberia ser lanzado por el usuario de
> postgresql?
> > los numeros que aparecen imagino que son los pid, verdad? no los puertos.
>
> Son los PID, no los puertos.  Un postgres normal no corre como root; si
> lo intentas, se detiene con un mensaje de error.  Seguramente estás
> malinterpretando la salida de ps.  Si quieres, muéstrala para indicarte
> el error.  (La otra alternativa es que OpenSUSE parche Postgres para
> eliminar esta protección, pero eso sería extremadamente estúpido de su
> parte.  Ni siquiera Gentoo hace eso).
>
> La manera más sencilla de saber dónde está el socket es usando lsof.
> Debes buscar un "archivo" de tipo "unix".  Acá está mi ps:
>
> $ ps u -C postmaster
> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> alvherre  3299  0.0  0.3  66132  7716 pts/2    S+   09:45   0:00
> /pgsql/install/HEAD/bin/postmaster -p 55432
> alvherre  3302  0.0  0.0  66132  1108 ?        Ss   09:45   0:00 postgres:
> writer process
> alvherre  3303  0.0  0.0  66132  1100 ?        Ss   09:45   0:00 postgres:
> wal writer process
> alvherre  3304  0.0  0.1  66960  2376 ?        Ss   09:45   0:00 postgres:
> autovacuum launcher process
> alvherre  3305  0.0  0.0  34632  1172 ?        Ss   09:45   0:00 postgres:
> stats collector process
>
> Observa que el proceso que realmente me interesa es el PID 3299.  Luego
> ejecuto lsof:
>
> $ lsof -p 3299
> COMMAND    PID     USER   FD   TYPE             DEVICE SIZE/OFF    NODE
> NAME
> postmaste 3299 alvherre  cwd    DIR                9,3     4096  770057
> /home/alvherre/Code/pgsql/install/HEAD/data
> postmaste 3299 alvherre  rtd    DIR                8,1     4096       2 /
> postmaste 3299 alvherre  txt    REG                9,3 21617387  770531
> /home/alvherre/Code/pgsql/install/HEAD/bin/postgres
> postmaste 3299 alvherre  DEL    REG                0,4          3309643
> /SYSV034dd341
> postmaste 3299 alvherre  mem    REG                8,1    47616   47241
> /lib/libnss_files-2.13.so
> postmaste 3299 alvherre  mem    REG                8,6  5596464  237603
> /usr/lib/locale/locale-archive
> postmaste 3299 alvherre  mem    REG                8,6    93936  215892
> /usr/lib/libz.so.1.2.3.4
> postmaste 3299 alvherre  mem    REG                8,1  1572120   47146
> /lib/libc-2.13.so
> postmaste 3299 alvherre  mem    REG                8,1   530736   47211
> /lib/libm-2.13.so
> postmaste 3299 alvherre  mem    REG                8,1    14768   47214
> /lib/libdl-2.13.so
> postmaste 3299 alvherre  mem    REG                8,6  1853320  213885
> /usr/lib/libcrypto.so.1.0.0
> postmaste 3299 alvherre  mem    REG                8,6   337216  213889
> /usr/lib/libssl.so.1.0.0
> postmaste 3299 alvherre  mem    REG                8,6  1398040  213252
> /usr/lib/libxml2.so.2.7.8
> postmaste 3299 alvherre  mem    REG                8,1   136936   47213
> /lib/ld-2.13.so
> postmaste 3299 alvherre  mem    REG                9,3   428847  770756
> /home/alvherre/Code/pgsql/install/HEAD/share/locale/es/LC_MESSAGES/
> postgres-9.2.mo
> postmaste 3299 alvherre  mem    REG                8,6    26048  395051
> /usr/lib/gconv/gconv-modules.cache
> postmaste 3299 alvherre    0u   CHR              136,2      0t0       5
> /dev/pts/2
> postmaste 3299 alvherre    1u   CHR              136,2      0t0       5
> /dev/pts/2
> postmaste 3299 alvherre    2u   CHR              136,2      0t0       5
> /dev/pts/2
> postmaste 3299 alvherre    3u  IPv4              87224      0t0     TCP
> localhost:55432 (LISTEN)
> postmaste 3299 alvherre    4u  unix 0xffff88003d2f7400      0t0   87225
> /tmp/.s.PGSQL.55432
> postmaste 3299 alvherre    5u  IPv4              88190      0t0     UDP
> localhost:43308->localhost:43308
>
> Acá veo que el socket es /tmp/.s.PGSQL.55432
>
> Luego, para conectarme puedo hacerlo de esta forma:
> psql -h /tmp -p 55432
>
> > Os explico mejor mi situación, tengo un opensuse corriendo en una maquina
> > virtual de Virtual Box, y un dia cuando lo apague salvé el estado, cuando
> > volvi a enceder me dio error y desde entonces me ha sido imposible
> iniciar
> > postgres, desde yast/servicios del sistema (desde kde) probé a iniciar el
> > servicio, pero me daba error, a partir de ahí he googleado hasta la
> > saciedad, y si hay gente con el mismo problema pero no he conseguido
> aplicar
> > ninguna de las soluciones.
>
> Yo, las veces que he visto problemas de este tipo, la gente inventa
> soluciones que no tienen ningún sentido.  Es lo que pasa cuando un
> montón de novatos se juntan a preguntar cosas que ninguno entiende y
> sacan respuestas como conejos de un sombrero.  Después se extrañan que
> no funcione, le echan la culpa a Linux, reinstalan todo y quedan tan
> contentos sin haber aprendido nada de la experiencia.
>
> --
> Álvaro Herrera <[email protected]>
>

Responder a