Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music

All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => command , shell script ,tool , crontab => Topic started by: golfreeze on เมษายน 05, 2017, 10:37:00 PM

Title: เช็ค zombie process แล้วตามหาต้นตอของ service ที่เกิด zombie
Post by: golfreeze on เมษายน 05, 2017, 10:37:00 PM
เช็ค zombie process แล้วตามหาต้นตอของ service ที่เกิด zombie
โดยปกติแล้วในระบบ unix หรือ Linux จะมี process ที่หยุดการทำงาน แล้วบางทีไม่ถูกปิดลงอย่างปกติ จนเกิดเป็น process ที่เรียกว่า zombie ซึ่งบางครั้งมีการจอง mem ไว้ แล้วทำให้ process ใหม่ที่เข้ามาเยอะๆ ทำงานได้ไม่ทัน

ดังนั้นเราจึงต้องรู้วิธีการ tracking หาว่า มันเกิดมาจาก service ไหนแล้วทำการ restart service หรือเข้าไปแก้ไข coding ของคำสั่งนั้นซะ

เริ่มตั้งแต่ใช้งาน ps หาครับ

$ ps aux | grep 'Z'
USER       PID     %CPU %MEM  VSZ    RSS TTY      STAT START   TIME COMMAND
userb      9972   0.0  0.0   7628   992 pts/2    S+   19:40   0:00 grep --color=auto Z
userb      9572   0.0  0.0   0      0   ??       Z    19:40   0:00 [wc] defunct

ทำการค้นหาดูต้นตอ process id
$lsof -i -n -p 9972

หรือใช้
$pstree -p -s 9972

ก็ได้ครับ
Title: Re: เช็ค zombie process แล้วตามหาต้นตอของ service ที่เกิด zombie
Post by: golfreeze on มีนาคม 15, 2018, 08:09:42 PM
มีอีกตัวที่แนะนำครับผม command : strace
เช่นผมมี process id 3913 ที่ได้จากการรัน "top" แล้วจะค้นหาว่ามีการอ่านเขียน อะไรบ้าง
-o = output log ไปที่ไหน
-p = process id
-f = trace child process also
#strace -f -p 3913 -o /home/golf/chronyd_log_strace