SIGTERM
New connections are no longer allowed, but all active sessions are allowed to complete their work properly, and are closed only after all sessions have completed the task. This is smart off.
SIGINT
No new connections are allowed, send SIGTERM to all active servers (let them exit immediately), and wait for all child processes to exit and close the database. This is quick to close.
Sigquit
Causes Postgres to send sigquit to all child processes and exits immediately (all child processes also exit immediately) without properly shutting down the database system. This is immediately closed. Doing so causes a recovery at the next startup (by replaying the WAL log). We recommend using this method only in case of emergency.
SIGKILL
This option is not used as much as possible, which prevents the server from cleaning up shared memory and beacon resources, so you can do it manually before you start the server. In addition, SIGKILL directly kills the postgres without waiting for it to relay the signal to its sub-processes, so we also need to manually kill each individual child process.
Postgres Database Startup Parameters