Chapter 3. Server Run-time Environment

Table of Contents
3.1. The PostgreSQL User Account
3.2. Creating a Database Cluster
3.3. Starting the Database Server
3.3.1. Server Start-up Failures
3.3.2. Client Connection Problems
3.4. Run-time Configuration
3.4.1. pg_settings
3.4.2. Planner and Optimizer Tuning
3.4.3. Logging and Debugging
3.4.4. General Operation
3.4.5. WAL
3.4.6. Short Options
3.5. Managing Kernel Resources
3.5.1. Shared Memory and Semaphores
3.5.2. Resource Limits
3.6. Shutting Down the Server
3.7. Secure TCP/IP Connections with SSL
3.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.

3.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.