これは実際には起こってはいけません。バックエンドが行っている問題は何ですか?小切手:
ps -C postgres -o pid,ppid,stat,start,time,%cpu,%mem,blocked,ignored,wchan:80,cmd
あなたがそれを知っているなら、と交換-C postgres
してください。太線-p the_pid
の後に表示されるプロセス名を必ず含めてください。chan
行全体で答えを更新します。
また、バックエンドからバックトレースを取得して、バックエンドが何をしているのかを確認することもできます。あなたはおそらくLinuxまたはBSDkill
を使用しているので、試してみてください。
gdb -p the_pid
(gdb) bt
... blah blah copy this blah ...
(gdb) q
例えば:
gdb -p 914
......blah blah ........
(gdb) bt
#0 0x0000003c31ceacc3 in __select_nocancel () from /lib64/libc.so.6
#1 0x00000000005f73b6 in ?? ()
#2 0x00000000005f7c36 in SysLogger_Start ()
#3 0x00000000005f60b0 in PostmasterMain ()
#4 0x0000000000457039 in main ()
(gdb) q
A debugging session is active.
Inferior 1 [process 914] will be detached.
Quit anyway? (y or n) y
Detaching from program: /usr/bin/postgres, process 914
可能であれば、最初にデバッグシンボルパッケージをインストールしてください。私は自分のマシンでPg9.1を使用していないので、上記のバックトレースはあまり役に立ちません。Pgwikiの記事を参照してください。
バックトレースは非常に長くなる可能性があるため、質問に直接リンクするのではなく、ペーストビンサイトにドロップして、ここにリンクすることを検討してください。