Out of date advice about SIGTERM'ing backends

Started by Josh Kupershmidtalmost 14 years ago2 messagesdocs
Jump to latest
#1Josh Kupershmidt
schmiddy@gmail.com

Hi all,

In the "Notes" section[0]http://www.postgresql.org/docs/9.2/static/app-postgres.html#AEN87192 of the postgres command's page, this advice is given:

| The postgres server uses SIGTERM to tell subordinate server
| processes to quit normally and SIGQUIT to terminate without
| the normal cleanup. These signals should not be used by users.

I think now that we've added pg_terminate_backend() and made it
callable by non-superusers, we should relax the caveat against using
SIGTERM against backends. The warning to stay away from using SIGQUIT
seems fine as-is. Patch attached.

Josh

[0]: http://www.postgresql.org/docs/9.2/static/app-postgres.html#AEN87192

Attachments:

backends_sigterm.diffapplication/octet-stream; name=backends_sigterm.diffDownload+14-14
#2Bruce Momjian
bruce@momjian.us
In reply to: Josh Kupershmidt (#1)
Re: Out of date advice about SIGTERM'ing backends

On Fri, Jun 29, 2012 at 08:10:40PM -0700, Josh Kupershmidt wrote:

Hi all,

In the "Notes" section[0] of the postgres command's page, this advice is given:

| The postgres server uses SIGTERM to tell subordinate server
| processes to quit normally and SIGQUIT to terminate without
| the normal cleanup. These signals should not be used by users.

I think now that we've added pg_terminate_backend() and made it
callable by non-superusers, we should relax the caveat against using
SIGTERM against backends. The warning to stay away from using SIGQUIT
seems fine as-is. Patch attached.

Patch applied for 9.3.

---------------------------------------------------------------------------

Josh

[0] http://www.postgresql.org/docs/9.2/static/app-postgres.html#AEN87192

diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml
new file mode 100644
index 4e5cd02..a1d014d
*** a/doc/src/sgml/ref/postgres-ref.sgml
--- b/doc/src/sgml/ref/postgres-ref.sgml
*************** PostgreSQL documentation
*** 726,739 ****

<para>
To cancel a running query, send the <literal>SIGINT</literal> signal
! to the process running that command.
</para>

<para>
!    The <command>postgres</command> server uses <literal>SIGTERM</literal>
!    to tell subordinate server processes to quit normally and
!    <literal>SIGQUIT</literal> to terminate without the normal cleanup.
!    These signals <emphasis>should not</emphasis> be used by users.  It
is also unwise to send <literal>SIGKILL</literal> to a server
process &mdash; the main <command>postgres</command> process will
interpret this as a crash and will force all the sibling processes
--- 726,743 ----

<para>
To cancel a running query, send the <literal>SIGINT</literal> signal
! to the process running that command. To terminate a backend process
! cleanly, send <literal>SIGTERM</literal> to that process. See
! also <function>pg_cancel_backend</> and <function>pg_terminate_backend</>
! in <xref linkend="functions-admin-signal"> for the SQL-callable equivalents
! of these two actions.
</para>

<para>
! The <command>postgres</command> server uses <literal>SIGQUIT</literal>
! to tell subordinate server processes to terminate without normal
! cleanup.
! This signal <emphasis>should not</emphasis> be used by users. It
is also unwise to send <literal>SIGKILL</literal> to a server
process &mdash; the main <command>postgres</command> process will
interpret this as a crash and will force all the sibling processes

--
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +