สวัสดีครับ ในบทความนี้ผมจะมาแนะนำเครื่องมือตัวหนึ่งที่ชื่อ PM2 ใช้สำหรับจัดการ Node.js Projects หลายๆอันของเรา ได้ง่ายๆ และสามารถเก็บ log ไปยัง file ได้ สามารถ Monitoring ทรัพยากรที่ใช้ได้ สามารถนำมาทำ Cluster Mode ได้ แถม pm2 ยังสามารถติดตั้ง modules ต่างๆ เพิ่มเติมเข้ามาได้ด้วย
สำหรับการติดตั้ง PM2 เราจะติดตั้งผ่าน npm ใช้คำสั่งตั้งนี้
npm install pm2@latest -g
หากเราต้องการจะเพิ่ม Node.js Project เข้าไปใน PM2 โดยไม่เก็บ log เราจะใช้คำสั่ง
ตัวอย่าง Node Project จะอยู่ที่ /Node/app.js และจะตั้งชื่อว่า project01
pm2 start /Node/app.js -n project01
หากต้องการเก็บ log เป็นไฟล์ด้วย เราจะเพิ่ม project โดยเพิ่ม -l พร้อมที่อยู่ของไฟล์ log ที่เราต้องการให้มันสร้าง
pm2 start /Node/app.js -n project01 -l /Node/log/access.log
จากนั้น หากเราต้องการแสดง Projects ทั้งหมดใน PM2 เราจะใช้คำสั่ง
pm2 list
เราก็จะได้รายการออกมาประมาณนี้ ซึ่งจะประกอบไปด้วย id และ name ที่เราจะสามารถนำไปอ้างอิงเพื่อดำเนินการต่างๆ ได้

การดำเนินการต่างๆ เช่นการ Delete, Restart, Stop หรือ Reload เราก็จะใส่คำสั่ง ตามด้วย name หรือ id ของ project
pm2 delete project01
pm2 restart project01
pm2 stop project01
pm2 reload project01
หากต้องการแสดง logs ของทุก projects เราจะใช้คำสั่ง
pm2 logs
หรือแสดง log ของ project ใด project หนึ่งเท่านั้น จะใส่ name หรือ id ตามหลังคำสั่ง pm2 log ดังนี้
pm2 log project01
หากต้องการ Update PM2 เป็นเวอร์ชั่นล่าสุด เราจะใช้คำสั่ง
pm2 update
กรณีที่เรา Shutdown Computer ของเรา และ PM2 ถูกปิดไป เป็นธรรมดาที่ Projects ต่างๆ ที่เราสร้างจะหายไป เราสามารถแก้ปัญหานี้ได้โดยการ save รายการต่างๆ ไว้ก่อน ใช้คำสั่ง
pm2 save
เพื่อบันทึกรายการ Projects ที่มีอยู่ใน PM2 จากนั้นหาก Shutdown Computer และเปิด pm2 ขึ้นมาใหม่อีกครั้ง รายการจะยังหายไปเหมือนเดิม แต่คราวนี้เราสามารถใช้คำสั่งให้มันเรียกคืนรายการที่ได้ save ไว้ได้ โดยใช้คำสั่ง
pm2 resurrect
เพียงเท่านี้เราก็จะสามารถกู้รายการให้กลับคืนมาได้ และหากต้องการให้ pm2 เริ่มทำงานทุกครั้งเมื่อเปิดเครื่อง โดยที่เราไม่ต้องมา resurrect ทุกครั้ง เราจะใช้คำสั่ง
pm2 startup
อ้างอิง: pm2.keymetrics.io
