pm2 چیست و چه کاربردی در پروژههای nodejs دارد؟
pm2 طبق توضیحات وب سایت رسمیpm2 ، یک ابزار مدیریت پردازشهای نودجیاس (nodejs) است که برای مدیریت و دباگ پروژههای نودجیاس (nodejs) مورد استفاده قرار میگیرد.
یکی از مهمترین استفاده از ابزار pm2، استفاده از آن برای دباگ، خطایابی و مانیتور کردن زنده پروژهها و اپلیکیشنهای نودجیاس (nodejs) در حال اجرا میباشد.
شما بعد از خرید هاستهای نودجیاس ، با استفاده از آموزش زیر میتوانید پروژه نودجیاس خود را راهاندازی کنید.
راهاندازی پروژه NodeJS با قابلیت NodeJS Application
در هاستهای نودجیاس (nodejs) پارس وبسرور، گزینهای به نام nodejs application در منوی سیپنل اضافه شده است که توسط تیم توسعه پارس وبسرور طراحی و توسعه داده شده است.
با کلیک بر روی این منو، صفحهای برای شما باز میشود که شما میتوانید بهراحتی پروژه خود را با استفاده از این قسمت راهاندازی کنید.
دستور pm2 و استفاده آن در پروژههای nodejs
شکل کلی استفاده از دستور pm2 به شکل زیر است:
pm2 [options] <command>
هر دستور ممکن است option های مختلفی داشته باشد که میتواند به همراه دستور pm2 استفاده شود.
برای مشاهده دستورات و راهنمای pm2 در ترمینال میتوانید دستور زیر را وارد کنید تا لیست تمام دستورات pm2 را مشاهده کنید:
pm2 -h, –help
برای مشاهده مثالهایی از pm2 میتوانید این دستور را در ترمینال وارد کنید:
pm2 examples
اگر نیاز به مشاهده راهنمای یک دستور خاص داشتید میتوانید دستور را به صورت زیر در ترمینال وارد کنید تا راهنمای همان دستور خاص را مشاهده کنید:
pm2 <command> -h
به طور مثال برای دستور pm2 logs راهنمای زیر در ترمینال نمایش داده میشود که میتوان از آپشنهایی برای دستور pm2 logs برای سفارسیسازی خروجی لاگ نمایش داده شده، استفاده کرد.
برای پروژههای بزرگ، ایجاد لاگهای مشخص و سفارشی، میتواند در نمایش اطلاعات مورد نیاز و پیدا کردن سریعتر خطاهای احتمالی مفید واقع شود.
pm2 logs
یکی از مهمترین و کاربردیترین دستورات pm2 است که لاگ زنده و بهروز پروژه را در ترمینال نمایش میدهد.
با این دستور هر پیام و یا خطایی که در پروژه در حال اجرا وجود داشته باشد، به صورت زنده و realtime در ترمینال قابل مشاهده و بررسی است.
با استفاده از این دستور میتوانیم گزارشهایی که در زمان اجرای پروژه وجود دارند، را بررسی کنیم.
همینطور خطاهای احتمالی در لاگ نمایش داده میشود که میتوانیم بر اساس آن پروژه را اصلاح کنیم.
اگر تغییراتی در پروژه ایجاد کرده باشیم میتوانیم نتیجه تغییرات را در لاگ پروژه در ترمینال، بررسی کنیم و تغییرات خود را بهبود ببخشیم.
زمانی که پروژه نودجیاس شما خطا داشته باشد، ممکن است با صفحه ارور 503 مواجه شوید، با وارد کردن این دستور در ترمینال میتوانید دلیل بروز خطا را مشاهده و خطا را رفع نمایید.
البته برای استفاده از دستور pm2 logs حتما نیازی نیست که برای رفع خطاهای پروژه به کار گرفته شود و زمانی که نیاز است اطلاعاتی در مورد راهاندازی و اجرای پروژه لاگ کنیم و نمایش دهیم، هم کاربرد دارد.
برای مشاهده لاگ پروژه کافی است در ترمینال سیپنل دستور زیر را وارد کنیم:
pm2 logs domain.com
* به جای domain.com باید نامه و یا سابدامنه پروژه مورد نظر خود را وارد کنید.
در برخی موارد نیاز است که یک بار پروژه را استاپ/استارت کنید تا پروژه مجدد راهاندازی شود و اگر خطایی وجود داشت نمایش داده شود.
در شکل زیر نحوه استاپ و استارت و دکمه دیدن لاگ پروژه مشاهده کنید:
1- رستات کردن پروژه
2- استاپ و استارت کردن پروژه
3- دکمه انتفال به ترمینال سی پنل و مشاهده لاگ پروژه
اگر سرویس هاست معلق شود، بعد از پرداخت صورتحساب و رفع تعلیق و فعال شدن مجدد، ممکن است پروژه خطا داشته باشد که با یک بار استاپ/ استارت پروژه مجدد راهاندازی خواهد شد.
در تصویر پایین میتوانید لاگ اجرای موفق پروژه پیشفرض نودجیاس را مشاهده کنید:
برای کسب اطلاعات بیشتر و مشاهده مستندات دستور logs می توانید به صفحه این دستور در وب سایت اصلی مراجعه بفرمایید. (مستندات log در pm2)
pm2 list
با استفاده از این دستور در ترمینال، لیست تمام پروژههای تعریف شده در هاست نمایش داده میشود که بر اساس نام آنها، مرتب شده است.
در جدول، اطلاعات پروژههایی تعریف شده در سی پنل، در ستونهایی نمایش داده میشود:
1- ستون اول مربوط به آی دی (id) پروژه میباشد که در زمان دباگ و یا وارد کردن سایر دستورات، میتوان از این آی دی استفاده کرد.
2- نام پروژه نودجیاس (nodejs) میباشد که بر اساس حروف الفبا مرتب و لیست شده است.
3- در ستون mode، اطلاعات نحوهی اجرای پروژه نمایش داده میشود که میتواند یکی از دو گزینه fork و یا cluster باشد.
4- علامت ↺ نشان دهنده در حال رستات بودن پروژه مورد نظر است.
5- در ستون 5 ، وضعیت فعلی پروژه نمایش داده میشود که میتواند یکی از گزینه های online, stopped, launching, errored, idle باشد.
6و7- در دو ستون cpu و memory مقدار مصرف منابعی که توسط هر پروژه استفاده میشود، نمایش داده میشود.
pm2 kill
شکل کلی استفاده از این دستور به صورت زیر است:
pm2 kill [id|name|all]
این دستور زمانی استفاده میشود که پروژه با مشکل و یا خطایی غیرقابل حل، مواجه شده باشد و نیاز است پروژه سریعا متوقف شود.
اگر یک پروژه یا پروژههایی که دیگر نیاز به اجرای آنها نیست و باید حذف شوند، با اجرای این دستور، متوقف خواهند شد.
با اجرای این دستور در ترمینال، پروژه مشخص شده براساس نام و یا آیدی و یا کل پروژهها (all)، بلافاصله و به صورت اضطراری متوقف میشوند.
برخلاف دستور pm2 stop که به پروژه زمان میدهد تا پروسسهای جاری را کامل کند و سپس متوقف شود، این دستور یک توقف اجباری و سریع برای پروژه است.
با اجرای این دستور، پروژه نودجیاس از لیست پروژهها در pm2 list حذف میشود و دیگر اطلاعات آن پروژه در جدول pm2 list نمایش داده نمیشود.
در صورت استفاده از این دستور، برای راه انداری مجدد یک پروژه، باید در سیپنل از قسمت nodejs application یک بار پروژه استاپ/استارت شود.
قبل از استفاده از این دستور باید از پروژه و اطلاعات مهم بکآپ تهیه کرد چون ممکن است اطلاعاتی حذف شود و از دست برود. (آموزش تهیه فول بکآپ)
pm2 stop
شکل کلی دستور به صورت زیر است:
pm2 stop [id|name|all]
با زدن این دستور در ترمینال، پروژههای تعریف شده متوقف میشوند.
بر خلاف دستور pm2 kill، این دستور به پروژه اجازه میدهد پردازش های جاری را کامل کند و سپس پروژه متوقف میشود.
پروژهها در لیست pm2 list، نمایش داده میشوند و وضعیت آنها به stopped تغییر میکند و با استارت/استاپ مجدد پروژه راهاندازی و آنلاین میشود.
pm2 delete
این دستور به شکل زیر در ترمینال قابل استفاده است:
pm2 delete [id|name|all] [-f]
با این دستور پروژه و یا پروژههای داده شده، از لیست پروژهها حذف میشوند.
با زدن این دستور، به صورت ضمنی دستور pm2 kill هم اجرا میشود و پروژه بلافاصله متوقف میشود.
اگر به همراه دستور، از آپشن f در انتهای دستور استفاده شود علاوه بر حذف پروژه، تمام فایلهای مربوط به پروژه هم حذف خواهند شد.
حتما قبل از استفاده از این دستور، از فایل ها و اطلاعات مهم پروژه بک اپ تهیه و دانلود شود. (آموزش تهیه فول بکآپ)
pm2 restart
با فرمت زیر قابل استفاده میباشد:
pm2 restart [id|name|all]
پروژههایی که خطا داشتند و با منابع زیادی را استفاده کردند و به خاطر کمبود منابع روی هاست با خطا مواحه شدند، با اجرای این دستور یک بار به صورت نرمال متوقف شده و مجدد راهاندازی میشوند.
عموما برخی خطاها مربوط به پروژه توسط این دستور رفع میشود و پروژه به درستی راهاندازی و فعال میشود.
همینطور بعد از ایجاد تغییراتی در پروژه، اجرای این دستور ضروری میباشد تا بتوانیم نتیجه تغییرات را مشاهده کنیم.
pm2 reload
شکل کلی استفاده از این دستور به این صورت است:
pm2 reload [id|name|all]
این دستور مشابه دستور pm2 restart عمل میکند با این تفاوت که در pm2 restart یک بار پروژه به صورت نرمال متوقف و سپس راهاندازی میشود اما در pm2 reload پروژه متوقف نمیشود و فقط تغییرات جدید اعمال میشود.
این دستور زمان استفاده میشود که تغییرات جزئی داشته باشیم و پروژه نباید حتی برای لحظه ای متوقف شود.
pm2 monit
با استفاده از این دستور در ترمینال، لیست کامل پروژههای در حال اجرا نمایش داده میشود و لاگ هر کدام از پروژهها نمایش داده شده و قابل بررسی خواهد بود.
در جدولهای نمایش داده شده، جزئیات مفید دیگری در مورد پروژه نمایش داده میشود که برای بررسی و دباگ پروژه میتواند مفید واقع شود.
pm2 info
شکل کلی استفاده از دستور به صورت زیر است:
pm2 info [id|name]
با استفاده از این دستور در محیط ترمینال، اطلاعات کامل پروژه که آیدی و یا نام آن در دستور به کار رفته است، نمایش داده میشود.
این دستور برای بررسی میزان مصرف منابع و مشاهده جزئیات پروژه بسیار مفید میباشد و تمام اطلاعات پروژه را به صورت کامل در ترمینال نمایش میدهد.
اطلاعات پروژه در 4 جدول به نام های Describing process، Revision control metadata، Actions available، Code metrics value، Divergent env variables from local env نمایش داده میشود.
pm2 flush
این دستور تمام فایلهای لاگ مربوط به پروژههای نودجیاس (nodejs) را پاک میکند.
سایر دستورات pm2
pm2 ping, pm2 sendSignal SIGUSR2 ,pm2 reset از دیگر دستورات pm2 هستند که در ترمینال اجرا میشوند و شرایط استفاده و کاربردهای خاص خود را دارند.
در این پست، به بررسی برخی از پرکاربرد ترین و پر استفاده ترین دستورات pm2 و استفاده آنها در پروژه های نودجیاس پرداختیم.
برای اطلاعات کاملتر و مشاهده لیست کامل دستورات و توضیحات و نحوه استفاده از هر کدام از آنها در پروژه می توانید به صفحه مستندات pm2 مراجعه بفرمایید.
چنانچه سوال و یا مشکلی در پروژه های نودجی اس وجود دارد می توانید با ارسال تیکت پشتیبانی، سوال و یا مشکل پروژه را مطرح کنید تا در اسرع وقت همکاران بخش پشتیبانی پروژه شما را بررسی و خطای پروژه را رفع کنند.