Обсуждение: Problems with starting Postgres
Hi! I started postgres with -i switch, but when i kill the proces i can't start it anymore on the same port. I tried this five times and i can start it now on 5 ports because i have to use everytime a new port. I look in my /tmp and try to delete postgres files, but still don't works. There is no proces running. I checked with netstat -a and there is no open sockets. This is an error FATAL: StreamServerPort: bind() failed: Address already in use Is another postmaster already running on that port? If not, remove socket node (/tmp/.s.PGSQL.5432) and retry. /usr/local/pgsql/bin/./postmaster: cannot create UNIX stream port Any clues or help Version of SQL is 7.0.3 and OS Linux Slack 7.1 Kernel 2.2.16 -- Uroš Gruber
On Sun, 10 Dec 2000, Uro� Gruber wrote: > I started postgres with -i switch, but when i kill the proces i can't > start it anymore on the same port. I tried this five times and i can > start it now on 5 ports because i have to use everytime a new port. > > I look in my /tmp and try to delete postgres files, but still don't > works. There is no proces running. I checked with netstat -a and there > is no open sockets. Wait for 2 to 4 minutes, and try again. (Don't we set SO_REUSEADDR?) -- Dominic J. Eidson "Baruk Khazad! Khazad ai-menu!" - Gimli ------------------------------------------------------------------------------- http://www.the-infinite.org/ http://www.the-infinite.org/~dominic/
Uro� Gruber <uros@sir-mag.com> writes: > I started postgres with -i switch, but when i kill the proces i can't > start it anymore on the same port. I tried this five times and i can > start it now on 5 ports because i have to use everytime a new port. > FATAL: StreamServerPort: bind() failed: Address already in use > Is another postmaster already running on that port? > If not, remove socket node (/tmp/.s.PGSQL.5432) and retry. > /usr/local/pgsql/bin/./postmaster: cannot create UNIX stream port How are you killing the postmaster? A plain kill (SIGTERM) should remove the socket file on its way out. The only thing that wouldn't is kill -9 ... if you're doing it that way, don't. regards, tom lane
Tom Lane wrote: > A plain kill (SIGTERM) should remove the socket file on its way out. > The only thing that wouldn't is kill -9 ... if you're doing it that > way, don't. The problem is an unexpected crash/reboot of the machine (which shouldn't happen, but...) that leaves socket files in /tmp and requires manual tweaking after the machine is up again. Maybe it's our installation, but we need a more reliable pg_ctl -- Alessio F. Bragadini alessio@albourne.com APL Financial Services http://village.albourne.com Nicosia, Cyprus phone: +357-2-755750 "It is more complicated than you think" -- The Eighth Networking Truth from RFC 1925
Alessio Bragadini <alessio@albourne.com> writes: > The problem is an unexpected crash/reboot of the machine (which > shouldn't happen, but...) that leaves socket files in /tmp and requires > manual tweaking after the machine is up again. Maybe it's our > installation, but we need a more reliable pg_ctl A lot of people (including me) set up their boot-time script to unconditionally delete /tmp/.s.PGSQL.5432 before launching the new postmaster. Of course this is pretty dangerous if you are in the habit of using the same script for hand restarts, since you might zap a socket belonging to a live postmaster. With any luck the problem will go away in 7.1 --- it has what I hope will prove to be a more robust scheme for deleting old socket files than the current one. regards, tom lane