<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/ipcclean.sgml,v 1.12 2006/06/18 15:38:36 petere Exp $
PostgreSQL documentation
-->

<refentry id="APP-IPCCLEAN">
 <refmeta>
  <refentrytitle id="APP-IPCCLEAN-TITLE"><application>ipcclean</application></refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo>Application</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>ipcclean</refname>
  <refpurpose>remove shared memory and semaphores from a failed <productname>PostgreSQL</productname> server</refpurpose>
 </refnamediv>

 <indexterm zone="app-ipcclean">
  <primary>ipcclean</primary>
 </indexterm>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>ipcclean</command>
  </cmdsynopsis>
 </refsynopsisdiv>

 <refsect1 id="R1-APP-IPCCLEAN-1">
  <title>Description</title>
  <para>
   <command>ipcclean</command> removes all shared memory segments and
   semaphore sets owned by the current user.  It is intended to be
   used for cleaning up after a crashed
   <productname>PostgreSQL</productname> server (<xref
   linkend="app-postgres">).  Note that immediately restarting the
   server will also clean up shared memory and semaphores, so this
   command is of little real utility.
  </para>

  <para>
   Only the database administrator should execute this program as it
   can cause bizarre behavior (i.e., crashes) if run during multiuser
   execution.  If this command is executed while a server is running,
   the shared memory and semaphores allocated by that server will be
   deleted, which would have rather severe consequences for that
   server.
  </para>
 </refsect1>

 <refsect1>
  <title>Notes</title>

  <para>
   This script is a hack, but in the many years since it was written,
   no one has come up with an equally effective and portable solution.
   Since <command>postgres</command> can now clean up by
   itself, it is unlikely that <command>ipcclean</command> will be
   improved upon in the future.
  </para>

  <para>
   The script makes assumptions about the output format of the
   <command>ipcs</command>
   utility which may not be true across different operating systems.
   Therefore, it may not work on your particular OS.  It's wise to
   look at the script before trying it.
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->
