آشنایی با مشکل semget: No space left on device و راه حل آن
بعضی اوقات و بسیار به ندردت این مشکل ایجاد می شود، وب سرور آپاچی شما یک به طور ناگهانی متوقف یا stop می شود و به هیچ عنوان نمی توانید آن را start یا restart کنید، به عبارتی امکان استارت مجدد آپاچی به هیچ عنوان وجود ندارد و هیچ ارور خاصی نیز در ssh دریافت نمی شود، این مورد یکی از نادر ترین ارور ها و مشکلات وب سرور آپاچی می باشد که ممکن است ایجاد شود.
در زمان این مشکل با بررسی ارور لوگ آپاچی نیز با پیغام زیر مواجه می شوید :
semget: No space left on device
برای حل این خطایی که تقریبا ۹۹ درصد به خاطر اجرای semaphores می باشد از روش زیر وارد ترمینال (ssh) شوید و سپس دستورات زیر به ترتیب اجرا کنید :
ipcs | grep apache | awk ‘{print $2}’ > sem.txt
for i in `cat sem.txt`; do { ipcrm -s $i; }; done;
و همچنین ipcs semaphore را می توانید تغییر دهید :
وارد فایل زیر شوید :
nano /etc/sysctl.conf
سپس مقادیر زیر را با crtl+w پیدا کرده و تغییر دهید و ذخیره نمایید (در ویرایش این فایل دقت فرمایید):
kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024
ولی پیشنهاد می کنیم برای این که بعد از مدتی مجدد دچار این خطا و مشکل نشوید یک اسکریپت cron تعریف می کنیم تا خودکار این مورد را حل و فصل کند.
ابتدا این فایل را می سازیم :
nano /etc/cron.hourly/ipcs_check
محتوای زیر را copy و فایل را ذخیره می کنیم :
EMAIL=your@email.com
MAX_SEMAPHORES=15
IPCS=/usr/bin/ipcs
IPCRM=/usr/bin/ipcrm
MAIL=/bin/mail
COUNT=`${IPCS} | grep apache | 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 apache | 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;
در بخش EMAIL ایمیل خود را وارد کنید.
سطح دسترسی فایل ساخته شده را برای اجرا بر روی ۷۵۵ قرار می دهیم به این صورت :
chmod 755 /etc/cron.hourly/ipcs_check
این اسکریپت به صورت خودکار هر یک ساعت یکبار اجرا خواهد شد، برای اطمینان از عملکرد صحیح در دقایق ابتدایی یک ساعت لاگ /var/log/cron را کنترل کنید در صورتی که مشاهده کردید اسکریپت اجرا نمی شود در بخش اخر فایل بجای exit 1 را به exit 0 تغییر دهید.
تجربه بالاترین سطح کیفیت میزبانی وب
اسپیس ایران با بیش از ۱۰ سال تجربه، انواع خدمات میزبانی وب، ثبت دامنه و سرور های مجازی را با بالاترین سطح کیفیت ممکن ارائه می نماید.
خرید هاست
ثبت دامنه
سرور مجازی