Apache2 not starting because of ssl_scache file
I mentioned this a while back, but I didn’t go into much detail on a long term solution. Let me re-set the situation. Linux server running apache2. It’s Mandrake (now Mandriva) (an older version.) When the system has suffered abrupt outage (power loss). Everything starts up normally with the exception of httpd2. It claims that it’s running but gives an error message. (For reference here’s the old article. Basically when you try to manually restart you see..
Cannot allocate shared memory: (17)File exists apache
(Not terribly descriptive.) The file it’s talking about though is /var/log/httpd/ssl_scache and of course, manually deleting it and then restarting apache (service httpd start) will work. However, I didn’t mention details of a longer term fix. Basically, this will require editing apache’s startup file. /etc/rc.d/init.d/httpd on Mandrake.
What you want to look for is the section that looks like this…
start() {
for tries in $times_start; do
if [ -x $SBIN/$HTTPDPERL -a ! -e $HTTPDPERLPID ]; then
You should make a bit of an addition here so that it looks like this….
start() {
for tries in $times_start; do
if [ -f /var/log/httpd/ssl_scache ]; then
mv -f /var/log/httpd/ssl_scache /var/log/httpd/old_ssl_scache
fi
if [ -x $SBIN/$HTTPDPERL -a ! -e $HTTPDPERLPID ]; then
So, we’re basically saying IF the file /var/log/httpd/ssl_scache exists, THEN move it to old_ssl_scache. You may have to adjust the location for your setup. So, next time power get’s cut to the server and apache (httpd) starts, it cleans up the stranded file first.