امروز میخوام یه ابزار خیلی باحال رو بهتون معرفی کنم، البته احتمالا خیلی هاتون باهاش آشنا هستین، که کار برنامهنویسها رو خیلی راحتتر کرده. اسمش PM2 هست. حالا PM2 چیه؟ یه مدیر فرآیند برای Node.js که کمک میکنه برنامههامون رو به راحتی مدیریت کنیم. اگه مثل من از دردسرهای ران کردن و مانیتور کردن برنامهها خسته شدین، حتما با من همراه باشین.
مزایای PM2 چیه؟
ران کردن و مدیریت راحت: با PM2 میتونین به راحتی برنامههای Node.js تون رو ران کنین و دیگه نگران کرش کردنشون نباشین. هر وقت برنامهتون کرش کنه، PM2 خودش اتوماتیک دوباره رانش میکنه.
مانیتورینگ: PM2 بهتون اجازه میده برنامههاتون رو زیر نظر بگیرین و ببینین چقدر از منابع سیستم استفاده میکنن.
سازگاری با کلاد: PM2 خیلی خوب با سرویسهای کلاد مثل AWS و Azure هماهنگ میشه.
و .. : PM2 میتونه برنامهها رو به صورت کلاستر ران کنه، یعنی چند تا پروسس از یه برنامه همزمان ران بشه و اینجوری کارایی برنامهتون بیشتر بشه.
نصب PM2
خب حالا چجوری نصبش کنیم؟ خیلی راحت، کافیه این دستور رو توی ترمینال وارد کنین:
npm install pm2 -g
این دستور PM2 رو به صورت گلوبال نصب میکنه. بعد از نصب، میتونین برنامهتون رو با دستور زیر ران کنین:
pm2 start app.js
چند دستور پرکاربرد
لیست برنامهها: با دستور pm2 list میتونین لیست برنامههای در حال اجرا رو ببینین.
استاپ کردن برنامه: با دستور pm2 stop [name or id] میتونین یه برنامه رو استاپ کنین.
ریستارت کردن برنامه: با دستور pm2 restart [name or id] میتونین یه برنامه رو ریاستارت کنین.
لاگها: با دستور pm2 logs میتونین لگهای برنامههاتون رو ببینین.
اینا فرانید های basic کار با pm2 بودن من یه فایل از کانفیگ pm2 پایین پست براتون میزارم که توضیح هر value: property رو جلوش با کامنت توضیح دادم.
از pm2 میتونین در تمامی زبان ها استفاده کنید و مختص Nodejs نیست.
در پایتون
pm2 start myscript.py --interpreter python3
در Php
pm2 start myscript.php --interpreter php
در ruby
pm2 start myscript.rb --interpreter ruby
در java
pm2 start myapp.jar --interpreter java -jar
و...
وقتی میخواین از PM2 برای مدیریت برنامههای نوشته شده به زبانهای مختلف استفاده کنین، باید مطمئن باشین که مفسر یا کامپایلر مناسب روی سیستم شما نصب شده و مسیر صحیحش رو به PM2 بدین. برای مثال، اگه از نسخههای خاص Python استفاده میکنین، باید مسیر دقیق اون رو مشخص کنین:
pm2 start myscript.py --interpreter /usr/local/bin/python3.8
وقتی میخواین از فایل کانفیگ استفاده کنید باید دستور رو بصورت زیر وارد کنید
pm2 start ecosystem.config.j
فایل رو پایین میزارم براتون و اینجا برخی فیچراشو میگم تا ترغیبتون کنم ازش استفاده کنید😁
برای مثال Graceful Shutdown رو داره خودش ci cd رو میشه به آسونی پیاده کرد روش یه سیستم لاگ گیری خفن داره blue green deploymen که رفیقومون گفت رو تو خودش جا داده و کلی فیچر خفن دیگه...
#pm2
@CleverDevs - @CleverDevsGp