แก้ปัญหา ใช้งาน Mono ได้บ้างไม่ได้บ้าง!
จากการทดลองติดตั้ง Mono-Project ซึ่งเป็น .net สำหรับ OS ที่เป็น Linux ซึ่งผมใช้ CenOS เป็นตัวทดสอบ
พบว่าในการติดตั้งทำได้ง่ายๆ แต่อาจจะมีปัญหาในส่วนของการทำงาน ซึ่งยังมีส่วนที่ยังไม่ค่อยเข้าใจอยู่บ้าง
ปัญหาที่พบล่าสุดและคิดว่าคงเป็นประโยชน์ท่านอื่นๆคือ เข้าใช้งานเว็บได้บ้างไม่ได้บ้าง เป็นครั้งคราว
ซึ่งในกรณีที่เข้าไม่ได้ จะเกิด error 500 ประมาณว่า Mono ไม่สามารถไม่สามารถทำงานได้
ผมได้ตรวจสอบพบว่า มี process ของ mono ค้างอยู่เป็นจำนวนมาก โดยใช้คำสั่ง
#ps -aux|grep mono
apache 32363 0.0 0.0 31964 1348 ? Ssl Dec27 0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master
apache 32364 0.0 0.0 31964 1348 ? Ssl Dec27 0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master
apache 32366 0.0 0.0 31960 1348 ? Ssl Dec27 0:00 /usr/bin/mono /usr/lib64/mono/1.0/mod-mono-server.exe –filename /tmp/mod_mono_server_global –nonstop –master
และเมื่อทำการ restart apache ทำไม่ได้ คุณจะต้องทำการ kill process ที่ค้างอยู่ให้หมดเสียก่อน โดยใช้คำสั่ง
#killall mono
และ restart apache ได้เลยครับ
#/etc/rc.d/init.d/httpd restart
และผมได้ทำการค้นหาคำตอบว่า ทำไมถึงมี process ของ Mono ค้างอยู่เป็นจำนวนมาก และในที่สุดก็รู้ว่า เกิดจากการ stop Apache ไม่สมบูรณ์ คือจะไม่มีการ kill process ของ Mono ไปด้วย (ซึ่งก็แน่นอนครับ) เราต้องเพิ่มเติมคำสั่งเข้าไปเอง โดย
#vi /etc/rc.d/init.d/httpd
แล้วเพิ่มบรรทัด killall เข้าไปในส่วนของโค้ดการ stop()
killproc -d 10 $httpd
#for Mono-Project
killall mono
RETVAL=$?
แค่นี้เมื่อมีการ stop Apache ก็มีจะการสั่ง kill process ของ Mono ให้เราด้วย
ความเห็นล่าสุด