1

For example Postgres process command-lines are like

postgres   794     1  0 Nov06 ?        00:00:03 /usr/pgsql-9.3/bin/postgres -D /var/lib/pgsql/9.3/data -p 5432
postgres   857   794  0 Nov06 ?        00:00:00   postgres: logger process   
postgres   871   794  0 Nov06 ?        00:00:00   postgres: checkpointer process   
postgres   872   794  0 Nov06 ?        00:00:00   postgres: writer process   
postgres   873   794  0 Nov06 ?        00:00:00   postgres: wal writer process   
postgres   874   794  0 Nov06 ?        00:00:03   postgres: autovacuum launcher process   
postgres   875   794  0 Nov06 ?        00:00:07   postgres: stats collector process   

Why are there colons (:)?

2 Answers2

3

Because as per its documentation:

On most Unix platforms, PostgreSQL modifies its command title as reported by ps, so that individual server processes can readily be identified.

This isn't unique to Postgres. Any process can modify its command line arguments as stored in its read-write memory, and this will be shown by ps*; see How does curl protect a password from appearing in ps output? for another example.

*As noted in comments in the linked question, it would be standards-compliant for a UNIX system to also store the process's original command line arguments outside of that process's read-write memory, and have ps report on those original arguments irrespective of any changes the process made to its read-write memory. This is very uncommon but not impossible or unheard of. Hence, probably, the "most Unix platforms" qualifier in the Postgres documentation.

Wildcard
  • 36,499
0

This is nothing but a visual separator, telling apart the main process from the sub-process.