برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

اجرای دائمی نرم افزار های nodejs به صورت startup , service

مقدمه

برنامه هایی که مبتنی بر nodejs نوشته می‌شوند، به طور معمول نیاز به اجرای دائمی دارند یعنی این شما باید حداقل مطئن شود یک instance یا نمونه از برنامه در حال اجرا است، برای این کار نیاز هست برنامه های شما باید به صورت سرویس اجرا بشوند برای این موضوع مشکل اساسی که پیش می آید این که سرویس شدن در هر سیستم عامل متفاوت است و برنامه هایی که بر اساس نود جی اس هستند برای startup شدن و سرویس شدن خود دارای ماهیت standalone نیستد وابسته به nodejs می باشند برای حل این مشکل پکیج هایی از جمله forever ،pm2 و … بوجود آمده اند.

PM2

با توجه به بررسی و تجربه حقیر در این زمینه PM2 بهترین گزینه برای سرویس کردن برنامه های مبتنی بر nodejs می‌باشد، لذا کاربری ساده تری دارد، قابلیت اطمینان بیشتری دارد و همچنین سیستم ماینتورینگ بسیار جالبی دارد برای کسب اطلاعات بیشتر به زبان اصلی به گیت هاب این پکیج حتما مراجعه کنید. اما ما در اینجا توضیحات لازم برای کار با این پکیج رو به شما در ادامه ارائه خواهیم کرد.

نصب PM2 برای نصب pm2 در terminal و یا cmd دستور زیر را اجرا کنید البته پس از اطمینان حاصل کردن از این که nodejs شما نصب شده است:

sudo npm install pm2 -g

اگر کاربر ویندوز هستید sudo ابتدای دستور را پاک کنید.

بعد از نصب میتونید از pm2 به صورت زیر استفاده کنید.

افزودن پروسه:

pm2 start /path/mynodeapp.js

به جای /path/mynodeapp.js آدرس اسکریپ برنامه مورد نظر را بزنید.

نمایش آنچه در حال اجراس:

pm2 ls

بعد می‌توانید آنچه در حال اجراست ببینید.

مانیتور کردن:

pm2 monit

حذف پروسه:

pm2 delete Id/name

برای حذف هم از نام و هم از id پروسه میتونید استفاده کنید id برای پروسه های همنام ضروری می‌شود.

ریستارت کردن پروسه:

pm2 restart Id/name

از قاعده بالایی (مورد قبلی) پیروی میکند.

برای استارت آپ کردن خوده پکیج:

pm2 startup

 

برای ذخیره کردن حالت فعلی و استارت اپ شدن پروسه های فعلی که در حال اجرا هستند یکی از دو دستور زیر رو  به دلخواه استفاده کنید:

pm2 dump
pm2 save

 

معرفی پنل وب  برای pm2

ساده و مختصر : حقیر برای کار ساده با pm2 یک پنل وب نوشتم که می‌تونید از اون استفاده کنید و بدون حتی یک خط command زدن کارتون رو راه بندازید،  آدرس github:

https://github.com/4xmen/pm2panel

با قابلیت افزودن (با انتخابگر فایل بصری) ، حذف و ریستارت کردن و ذخیره کردن پروسه ها همراه با فرم ورود (تایید هویت) برای تامین امنیت و دسترسی مجاز به پنل

تصاویر محیط pm2panel:

 

 

برای نصب این پنل به گیت هاب مراجعه کنید اطلاعات کامل در آن درج شده است.

نکته: اگر بر روی سرور نصب میکند حتما پسورد و نام کاربری را عوض کنید تا مشکل امنیتی برایتان پیش نیاید.

نکته آخر: بعد از نصب و راهندازی رو سرور پورت برنامه که به صورت پیشفرض ۳۰۰۱ میباشد باز شود یعنی از حالت بلاک بودن در فایروال خارج شود تا پنل وب قابل استفاده باشد.


توسط

برچسب‌ها:

نظرات

11 پاسخ به “اجرای دائمی نرم افزار های nodejs به صورت startup , service”
  1. BlackAngel

    عاشق تیم تون هستم امیدوارم در هر جا که هستید موفق باشید

    1. ‌A1Gard

      خواهش می کنم نظر لطفتونه، شما هم هر جا که هستید پاینده باشید.

  2. Black Angel

    چند تا سوال داشتم
    قالب سایتتون Radar هست، درسته؟
    من هر جا رو گشتم قالب مشکل داشت
    اگه میشه فایل قالب رو ایمیل کنید یا از هر جا که دریافت کردید لینکش رو بفرستید
    ممنون ?
    Shervin850@gmail.com

    1. ‌A1Gard

      بله قالب Radar هست من خودم از بخش قالب های وردپرس به صورت آنلاین نصب کردم، کمی cutomize شده وگرنه تغییر خاصی نداره پیشنهاد میکنم حتما بعد از نصب امکاناتشو فعال کنید تا بهره کامل ببرید.

  3. Black Angel

    همچنین اینکه فونت ها ی فارسی رو دستی اضافه کردید یا با استفاده از افزونه؟
    اگه مقدور هست اسم افزونه رو لطف کنید

    1. ‌A1Gard

      اینم با افزونه Simple Custom CSS and JS فونت وزیر اضافه شده در دو بخش HTML و CSS

      1. Black Angel

        ممنون باز سوال داشتم مزاحمتون میشم ?

  4. alitaro

    هرکاری میکنم با این خطا مواجه میشم هیچ جا پیداا نکردم دلیلشو اگه میشه راهنمایی کنید nodejs هم نصب هست
    – bash: pm2:command not found

    1. ‌A1Gard

      چون پکیج رو به صورتی کلی نصب نکردید سیستم عاملتون چیه؟

  5. hamid

    من سرور مجازی لینوکس دارم و node js و pm2 رو روی سرورم نصب کردم و با موفقیت استارتاپش هم کردم. منتها مشکلی که دارم اینه که من داده هامو از طریق اندروید استودیو به سرور می فرستم و از طریق سوکت کار می کنم و سمت اندروید هم از یه تایمر استفاده کردم که هر ۵ ثانیه اطلاعات ارسال بشن ولی بعد از چند دقیقه ارتباط سوکت بین سرور و برنامه اندروید قطع میشه.
    با دستور pm2 ls هم چک کردم وضعیت فایلم روی سرور online هست.
    خواستم بهم راهنمایی کنید تا بتونم این مشکل رو حل کنم
    تشکر

    1. ‌A1Gard

      اشکال از سمت اندروید هستش به pm2 ربطی نداره

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *