Updated on 2024-05-07 GMT+08:00

Server Signal Functions

Server signal functions send control signals to other server processes. Only a system administrator has the permission to execute the following functions:

  • pg_cancel_backend(pid int)

    Description: Cancels a statement that is being executed by a backend thread.

    Return type: Boolean

    Note: pg_cancel_backend sends a query cancellation (SIGINT) signal to the backend process identified by pid. The PID of an active backend process can be found in the pid column of the pg_stat_activity view, or can be found by listing the database process using ps on the server. A user with the SYSADMIN permission, the owner of the database connected to the backend process, the owner of the backend process, or a user who inherits the built-in role permission gs_role_signal_backend has the permission to use this function.

  • pg_cancel_session(pid bigint, sessionid bigint)

    Description: Cancels the statement that is being executed by an active session in thread pool mode.

    Return type: Boolean

    Note: The input parameters of pg_cancel_session can be queried using the pid and sessionid columns in pg_stat_activity. The input parameters can be used to clear the statements that are being executed by active sessions in thread pool mode. When the input parameters pid and sessionid are the same and both are thread IDs, the function of pg_cancel_backend is the same as that of pg_cancel_backend.

  • pg_reload_conf()

    Description: Causes all server processes to reload their configuration files.

    Return type: Boolean

    Note: pg_reload_conf sends a SIGHUP signal to the server. As a result, all server processes reload their configuration files.

  • pg_rotate_logfile()

    Description: Rotates the log files of the server.

    Return type: Boolean

    Note: pg_rotate_logfile sends a signal to the log file manager, instructing the manager to immediately switch to a new output file. This function works only when redirect_stderr is used for log output. Otherwise, no log file manager subprocess is generated.

  • pg_terminate_backend(pid int)

    Description: Terminates a backend thread.

    Return type: Boolean

    Note: Each of these functions returns true if they are successful and false otherwise. A user with the SYSADMIN permission, the owner of the database connected to the backend thread, the owner of the backend thread, or a user who inherits the built-in role permission gs_role_signal_backend can use this function. If the target session fails to be terminated after this function is executed, the socket connection between the session and the client is forcibly closed.

    This function can terminate non-thread pool threads and active thread pool threads, but cannot terminate inactive thread pool threads.

    Example:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    gaussdb=# SELECT pid from pg_stat_activity;
           pid       
    -----------------
     140657876268816
    (1 rows)
    
    gaussdb=# SELECT pg_terminate_backend(140657876268816);
     pg_terminate_backend 
    ----------------------
     t
    (1 row)
    
  • pg_terminate_session(pid int64, sessionid int64)

    Description: Terminates a backend session in thread pool mode.

    Return type: Boolean

    Note: Each of these functions returns true if they are successful and false otherwise. A user with the SYSADMIN permission, the owner of the database connected to the session, the owner of the session, or a user who inherits the built-in role permission gs_role_signal_backend has the permission to use this function. If the target session fails to be terminated after this function is executed, the socket connection between the session and the client is forcibly closed.

    When the input parameters pid and sessionid are the same and both are thread IDs, this function can terminate non-thread pool threads and active thread pool threads.

    When the input parameters pid and sessionid are different, this function can terminate active sessions or close inactive sessions and the socket connection of the client.

  • pg_terminate_active_session_socket(pid int64, sessionid int64)

    Description: Closes the socket connection between an active session and the client.

    Return type: Boolean

    Note: Each of these functions returns true if they are successful and false otherwise. A user with the SYSADMIN permission, the owner of the database connected to the backend thread, the owner of the backend thread, or a user who inherits the built-in role permission gs_role_signal_backend has the permission to use this function.