غالبًا ما تتطلب إدارة تطبيقات Node.js على خادم الإنتاج مدير عمليات لضمان تشغيل تطبيقاتك بسلاسة والتعافي تلقائيًا من الأعطال. يعد PM2 أحد أشهر مديري العمليات في Node.js، حيث يقدم ميزات قوية مثل مراقبة العمليات وإدارة السجل ووضع المجموعة.
إذا كنت تقوم بتشغيل تطبيق على مثيل Google Cloud Ubuntu، فقد تواجه موقفًا تكون فيه عمليات PM2 مرئية فقط للمستخدم الذي بدأها. قد يكون هذا مشكلة إذا كان الخادم الخاص بك يحتوي على عدة مستخدمين، مثل المطورين أو مسؤولي النظام أو البرامج النصية للنشر التلقائي. في منشور المدونة هذا، سنتعرف على خطوات تكوين PM2 كخدمة على مستوى النظام، مما يجعلها في متناول جميع المستخدمين على الخادم.
افتراضيًا، يتم تشغيل PM2 كعملية تحت إشراف المستخدم الذي بدأها. وهذا يعني أنه إذا قمت بإدخال SSH إلى الخادم الخاص بك كمستخدم واحد وبدأت عملية PM2، فلن تكون هذه العملية مرئية لمستخدم آخر يقوم بتسجيل الدخول عبر SSH. ولمعالجة هذه المشكلة، يمكننا تكوين PM2 لتعمل كخدمة على مستوى النظام. ولهذا الأسلوب العديد من المزايا:
قبل أن نبدأ، تأكد من حصولك على ما يلي:
للتأكد من أن جميع المستخدمين يمكنهم الوصول إلى PM2، يجب تثبيته عالميًا. يمكنك تثبيت PM2 عالميًا باستخدام npm:
sudo npm install -g pm2
يقوم هذا الأمر بتثبيت PM2 في دليل npm العالمي، مما يجعله متاحًا على مستوى النظام.
بعد ذلك، نحتاج إلى إعداد PM2 لتشغيله كخدمة. سيسمح هذا لـ PM2 بإدارة العمليات على مستوى النظام بدلاً من ربطها بجلسة مستخدم محددة.
قم بتشغيل الأمر التالي لإنشاء البرنامج النصي لبدء التشغيل الضروري لـ PM2:
pm2 startup
يكتشف هذا الأمر نظام init الذي يستخدمه مثيل Ubuntu الخاص بك (عادةً systemd) ويوفر أمرًا يجب تنفيذه باستخدام Sudo لتكوين PM2 كخدمة على مستوى النظام. سيبدو الإخراج كما يلي:
[PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u--hp /home/
هنا، يجب استبدال
انسخ الأمر المقدم في مخرجات الخطوة السابقة وقم بتنفيذه. على سبيل المثال:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe
يقوم هذا الأمر بإنشاء خدمة systemd التي تبدأ PM2 بمتغيرات البيئة الصحيحة وسياق المستخدم.
إذا كانت لديك بالفعل عمليات تعمل تحت PM2 وتريد أن تستمر عبر عمليات إعادة التشغيل، فأنت بحاجة إلى حفظ قائمة العمليات الحالية. يؤدي هذا إلى إنشاء ملف تفريغ سيستخدمه PM2 لاستعادة العمليات عند بدء تشغيل النظام:
pm2 save
يحفظ أمر حفظ PM2 القائمة الحالية للعمليات المُدارة في ملف JSON في ~/.pm2/dump.pm2. يتم تحميل هذا الملف تلقائيًا عند بدء تشغيل PM2، مما يضمن إعادة تشغيل تطبيقاتك بعد إعادة التشغيل.
لضمان بدء تشغيل PM2 تلقائيًا عند تشغيل النظام، تحتاج إلى تمكين الخدمة:
sudo systemctl enable pm2-johndoe
استبدل johndoe باسم المستخدم المناسب. يعمل هذا الأمر على تمكين خدمة PM2، مما يضمن تشغيلها عند تشغيل النظام.
الآن بعد أن تم تكوين PM2 كخدمة على مستوى النظام، يجب أن يكون في متناول أي مستخدم على الخادم. للتحقق من حالة العمليات أو لإدراجها، يمكن لأي مستخدم تشغيل:
pm2 list
سيعرض هذا الأمر قائمة العمليات التي تديرها خدمة PM2 على مستوى النظام، بغض النظر عن المستخدم الذي قام بتسجيل الدخول.
إذا كنت تريد أن يتمكن العديد من المستخدمين من الوصول إلى سجلات PM2، فقد تحتاج إلى ضبط أذونات الملف أو تكوين PM2 لتخزين السجلات في دليل مشترك. وهذا يضمن أن يتمكن جميع المستخدمين من عرض وإدارة السجلات الخاصة بالعمليات التي تعمل ضمن PM2.
لتغيير دليل ملف السجل، يمكنك استخدام متغير البيئة التالي:
export PM2_HOME=/path/to/shared/pm2/home
قم بتعيين هذا في ملف تكوين عام، مثل /etc/environment، لجعله ثابتًا عبر الجلسات.
بمجرد إعداد PM2 كخدمة، يمكن للمستخدمين إدارة العمليات باستخدام أوامر PM2 القياسية. ومع ذلك، اعتمادًا على الأذونات وأدوار المستخدم، قد تتطلب بعض الأوامر الوصول إلى sudo. على سبيل المثال:
sudo pm2 list
سيقوم هذا الأمر بسرد العمليات التي تديرها خدمة PM2 على مستوى النظام، مما يسهل على المسؤولين والمطورين التعاون في إدارة الخادم.
يضمن إعداد PM2 كخدمة على مستوى النظام على مثيل Ubuntu الخاص بك إدارة تطبيقات Node.js الخاصة بك بقوة وإمكانية الوصول إليها لجميع المستخدمين على الخادم. يعد هذا الإعداد مفيدًا بشكل خاص في البيئات التي تحتوي على مستخدمين متعددين أو عمليات نشر تلقائية، مما يوفر طريقة موثوقة ومركزية لإدارة التطبيقات.
باتباع الخطوات الموضحة في هذا الدليل، يمكنك التأكد من توفر PM2 لجميع المستخدمين، وإعادة تشغيل عملياتك تلقائيًا بعد إعادة تشغيل النظام، وسهولة الوصول إلى السجلات. وهذا لا يبسط إدارة الخادم فحسب، بل يعزز أيضًا موثوقية تطبيقاتك في الإنتاج.
تعليمات سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3