I have a requirement to run two separate postmasters on the one machine. It looks like they compete for resources (semaphores) so won't run concurrently.
I compiled twice, specifying different ports and home directories:
./configure --with-java --with-pgport=6100 --prefix=/usr/local/teprpg01
make
etc...
gmake distclean
./configure --with-java --with-pgport=6110 --prefix=/usr/local/teqapg01
etc...
I can start either of the installed postmasters, but when I try to start them at the same time using the commands:
/usr/local/teprpg01/bin/postmaster -D /usr/local/teprpg01/data >logfile 2>&1 &
/usr/local/teqapg01/bin/postmaster -D /usr/local/teqapg01/data >logfile 2>&1 &
I get the error:
FATAL: could not create semaphores: No space left on device
DETAIL: Failed system call was semget(6100001, 17, 03600).
HINT: This error does *not* mean that you have run out of disk space.
It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI),
Or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise
The respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores
By reducing its max_connections parameter (currently 40).
The PostgreSQL documentation contains more information about configuring your system for PostgreSQL.
Is it a shortage of semaphores, or a competition problem between the postmasters? Is there something else I need to do?
Thanks in advance for any help,
Edwin New
Analyst Programmer
Toll - Integrated Business Systems