Chapter 16. Server Run-time Environment

Table of Contents
16.1. The PostgreSQL User Account
16.2. Creating a Database Cluster
16.3. Starting the Database Server
16.3.1. Server Start-up Failures
16.3.2. Client Connection Problems
16.4. Run-time Configuration
16.4.1. Connections and Authentication
16.4.2. Resource Consumption
16.4.3. Write Ahead Log
16.4.4. Query Planning
16.4.5. Error Reporting and Logging
16.4.6. Runtime Statistics
16.4.7. Client Connection Defaults
16.4.8. Lock Management
16.4.9. Version and Platform Compatibility
16.4.10. Developer Options
16.4.11. Short Options
16.5. Managing Kernel Resources
16.5.1. Shared Memory and Semaphores
16.5.2. Resource Limits
16.5.3. Linux Memory Overcommit
16.6. Shutting Down the Server
16.7. Secure TCP/IP Connections with SSL
16.8. Secure TCP/IP Connections with SSH Tunnels

This chapter discusses how to set up and run the database server and the interactions with the operating system.

16.1. The PostgreSQL User Account

As with any other server daemon that is connected to outside world, it is advisable to run PostgreSQL under a separate user account. This user account should only own the data that is managed by the server, and should not be shared with other daemons. (For example, using the user nobody is a bad idea.) It is not advisable to install executables owned by this user because compromised systems could then modify their own binaries.

To add a Unix user account to your system, look for a command useradd or adduser. The user name postgres is often used but is by no means required.