ipcclean は postgres ユーザが所有する全てのインスタンスを削除することにより、中断した バックエンドが持つ共有メモリとセマフォを片付けます。 DBA だけが、このプログラムを実行するようにすべきです。というのは、 複数ユーザによる処理時に、このプログラムを実行することは、奇妙な振 舞い(すなわち、クラッシュ)を引き起こすからです。 以下のメッセージが postmaster もしくは バックエンドサーバの起動時に現れた場合、このプログラムを実行しなけ ればなりません。 semget: No space left on device
postmaster 実行中にこのコマンドを実行 した場合、postmaster に割り当てられた 共有メモリとセマフォも削除されます。 通常これにより、その postmaster からの バックエンドサーバの起動は失敗します。
このスクリプトはハックによるものです。 作成されてから何年も経過していますが、どなたからも同様な効果を持ち、 かつ、移植性の高い方法の提案がありません。 提案をお待ちしています。
このスクリプトには、ipcs ユーティリティ の出力形式について前提があります。しかし、オペレーティングシステム によってはこの前提が成り立ちません。 このため、使用している OS によっては動作しないことがあります。