Fixed วิธีแก้ไขปัญหา No space left on device หรือ httpd start service ไม่ขึ้น

แก้ไขปัญหา httpd start service ไม่ขึ้น
No space left on device: failed to create proxy mutex / Configuration Failed, exiting

ปกติ script เดิมๆ จะหาเพียง apache บ้าง httpd บ้าง
คราวนี้เครียเท่าไหร่ก็ start service ไม่ขึ้นสักที ผลมาจาก ipcs มี nginx อยู่เพียบ
จึงเพิ่มให้ตรวจสอบ nginx / httpd / apache ไปด้วย

Create a script in:

/etc/cron.hourly/ipcs_check

with the contents:

#!/bin/sh

EMAIL=your@email.com
MAX_SEMAPHORES=30

IPCS=/usr/bin/ipcs
IPCRM=/usr/bin/ipcrm
MAIL=/bin/mail

COUNT=`${IPCS} | grep 'nginx\|apache\|httpd' | wc -l`

if [ "$COUNT" -le $MAX_SEMAPHORES ]; then
       #all is well, there are no semaphore build-ups.
       exit 0;
fi

#we have more than MAX_SEMAPHORES, so clear them out and restart Apache.

LIST=/root/sem.txt

${IPCS} | grep 'nginx\|apache\|httpd' | awk '{print $2}' > ${LIST}
for i in `cat ${LIST}`; do
{
       ${IPCRM} -s $i;
};
done;

/etc/init.d/httpd restart

#TXT="${COUNT} semaphores cleared for apache for `hostname`"
#echo "${TXT}" | ${MAIL} -s "${TXT}" ${EMAIL}

exit 1;

and then chmod the script to 755:

chmod 755 /etc/cron.hourly/ipcs_check

4 Likes