On Feb 25, 2004, at 11:27 pm, Daniel Rogers wrote:
sysctl -w kern.sysv.shmmax=41943040 sysctl -w kern.sysv.shmmin=1 sysctl -w kern.sysv.shmmni=320 sysctl -w kern.sysv.shmseg=80 sysctl -w kern.sysv.shmall=10240
DUH! How could I possibly forget about sysctl. That doesn't seem to work though:
lucy:~ root# sysctl -w kern.sysv.shmmax=41943040 kern.sysv.shmmax: 4194304 -> 4194304 lucy:~ root# sysctl -w kern.sysv.shmmin=1 kern.sysv.shmmin: 1 -> 1 lucy:~ root# sysctl -w kern.sysv.shmmni=320 kern.sysv.shmmni: 32 -> 32 lucy:~ root# sysctl -w kern.sysv.shmseg=80 kern.sysv.shmseg: 8 -> 8 lucy:~ root# sysctl -w kern.sysv.shmall=10240 kern.sysv.shmall: 1024 -> 1024
Yes, in fact it doesn't. I played around with this quite a bit. The explanation requires understanding how the startup sequence works and mach "security modes."
The first process run by Mac OS X in the normal boot-up sequence is init, which begins in mach security mode 0, and very shortly moves to mac security mode 1 (I belive man init explains this). In security mode 1, thos sysctl values can only ever be set _once_. Since they are set in /etc/rc, which is the first thing that init runs, you cannot change them after that. This is why you need to edit the rc file and reboot.
If you are in single user mode, which explictly is in security mode 0, then you can set these values as many times as you wish. Judging from the way the rc scripts are set up, I am guessing that these values are not so restricted in the server version, though I haven't tested it.
This goes back to the question as to why apple would restrict you from changing the values after boot, and why they would set the defaults to low.
Who knows? Who cares? but you do need to edit /etc/rc to see any effect.
Servus, Daniel
-- Daniel