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]>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a