We got some semget errors when trying to start uwsgi inside a FreeBSD jail . The solution is to set some /boot/loader.conf variables
kern.ipc.shmmni="512" kern.ipc.semmni="512" kern.ipc.semmnu="512" kern.ipc.semmns="1024" kern.ipc.semume="512"
But we still had some problems in the jail after reboot . It turns out FreeBSD sysctl variable security.jail.sysvipc_allowed defaults to 0, that is ipc by default is disabled for jails. Note that issuing:
# sysctl security.jail.sysvipc_allowed=1
and restarting the jail isn’t enough, ’cause /etc/rc.d/jail will reset that variable upon jail restart, you’d also have to have this in /etc/Rc.conf
jail_sysvipc_allow="YES"
and you’re able to start jails with ipc support .
This is explained in more detail at www.freebsddiary.org
Wonder what all these cryptic sysctl variable names mean ? try:
# sysctl -d kern.ipc.shmmni kern.ipc.shmmni: Number of shared memory identifiers #
Also note that: I ran into an other problem where a lot of ipc semaphores where taken but not released, I wrote a small script to fix that:
#!/bin/sh ipcs | grep [username] | awk '{print $2}' > sem.txt for i in `cat sem.txt`; do ipcrm -s $i; done;
substitute [username] with the username of the users semaphores you’d want to delete .