*** a/doc/src/sgml/ref/psql-ref.sgml
--- b/doc/src/sgml/ref/psql-ref.sgml
***************
*** 3365,3370 **** testdb=&gt; <userinput>INSERT INTO my_table VALUES (:'content');</userinput>
--- 3365,3377 ----
        </varlistentry>
  
        <varlistentry>
+         <term><literal>%p</literal></term>
+         <listitem>
+          <para>The PID of the backend.</para>
+         </listitem>
+       </varlistentry>
+ 
+       <varlistentry>
          <term><literal>%&gt;</literal></term>
          <listitem><para>The port number at which the database server is listening.</para></listitem>
        </varlistentry>
*** a/src/bin/psql/prompt.c
--- b/src/bin/psql/prompt.c
***************
*** 34,39 ****
--- 34,40 ----
   * %M - database server "hostname.domainname", "[local]" for AF_UNIX
   *		sockets, "[local:/dir/name]" if not default
   * %m - like %M, but hostname only (before first dot), or always "[local]"
+  * %p - backend PID
   * %> - database server port number
   * %n - database user name
   * %/ - current database
***************
*** 161,166 **** get_prompt(promptStatus_t status)
--- 162,172 ----
  					if (pset.db)
  						strlcpy(buf, session_username(), sizeof(buf));
  					break;
+ 					/* backend PID */
+ 				case 'p':
+ 					if (pset.db)
+ 						snprintf(buf, sizeof(buf), "%d", PQbackendPID(pset.db));
+ 					break;
  
  				case '0':
  				case '1':
