postgresql-[any version] from FreeBSD ports - startup problems after crash

Поиск
Список
Период
Сортировка
От Ruslan A Dautkhanov
Тема postgresql-[any version] from FreeBSD ports - startup problems after crash
Дата
Msg-id 44683D08.7040608@scn.ru
обсуждение исходный текст
Ответы Re: postgresql-[any version] from FreeBSD ports - startup problems after crash  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Hello !

Server rebooted occasionally after power failure.
And I have stale postmaster.pid file, so postmaster didn't start with error
    bill postgres[600]: [1-1] FATAL:  file "postmaster.pid" already exists

I think startup script and/or pg_ctl have to be written to check if that
process really exists
and it is postmaster, so DBMS server starts after any hard reboot.

I changed the startup script block

    postgresql_command()
    {
        su -l ${postgresql_user} -c "exec ${command} ${command_args}
${rc_arg}"
    }

to

postgresql_cmd()
{
        su -l ${postgresql_user} -c "exec ${command} ${command_args}
${rc_arg}"
}
postgresql_command()
{
        if [ ".$1" = ".start" ]; then
                pidfile="${postgresql_data}/postmaster.pid"
                if [ -e ${pidfile} ]; then
                        #check if postmaster process really exists
                        pid_fromfile=`head -1 ${pidfile}`
                        real_pid=`ps ax | grep -v grep | grep postmaster
| grep ${postgresql_data} | awk '{print $1}'`
                        if [ "x${pid_fromfile}" = "x${real_pid}" ]; then
                                echo "Postmater for datadir
${postgresql_data} already run with pid $real_pid"
                        else
                                #we have stale pidfile, remove it
                                unlink $pidfile
                                #and run postmater safely
                                postgresql_cmd
                        fi
                else
                        #.pid file not exists, clean startup
                        postgresql_cmd
                fi
        else
                postgresql_cmd
        fi
}

That I hope satisfy all cases with stale .pid file...

--
Ruslan A Dautkhanov

В списке pgsql-bugs по дате отправления:

Предыдущее
От: YourSoft
Дата:
Сообщение: Re: group by
Следующее
От: Tomasz Ostrowski
Дата:
Сообщение: Re: SIGSEGV happens over once a day