اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'خواديم وهمية'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • مقالات عمل حر عامة
  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • العمل الحر المهني
    • العمل بالترجمة
    • العمل كمساعد افتراضي
    • العمل بكتابة المحتوى

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 1 نتيجة

  1. يشيع في بيئات الخواديم الوهمية (VPS) تواجد عدد من البرامج الصغيرة التي تريدها أن تعمل عملًا متواصلًا، سواءً كانت سكربتات صدفة (shell scripts) صغيرة، أو تطبيقات Node.js، أو أيّة تطبيقات كبيرة أخرى. ستكتب عادةً سكربت init لكل برنامج من تلك البرامج، لكن سرعان ما ستستهلك هذه الطريقة وقتًا لإدارتها، ولن يسهل للمستخدمين الجدد استعمالها. Supervisor هو مدير للعمليات الذي يجعل إدارة عدد من البرامج التي تعمل عملًا متواصلًا أمرًا هينًا بتوفير واجهة موحدة يمكنك خلالها مراقبة تلك البرامج والتحكم بها. سنفترض في درسنا هذا أنَّك معتادٌ على استعمال سطر الأوامر وتثبيت الحزم وإجراء بعض أمور الإدارة البسيطة على الخادوم. التثبيت تثبيت Supervisor على توزيعتَي أوبنتو ودبيان سهلٌ للغاية، إذ تتوفر حزمٌ مبنيةٌ مسبقًا في مستودع كلا التوزيعتين. نفِّذ الأمر الآتي بحساب الجذر لتثبيت حزمة Supervisor: apt-get install supervisor سيُشغّل "عفريت" (daemon) خدمة supervisor مباشرةً بعد إكمال التثبيت، لأنَّ الحزم التي ثبتها تحتوي على سكربت init الذي سيُشغِّل Supervisor بعد إعادة تشغيل النظام. يمكنك التأكد من ذلك بتنفيذ الأمر: service supervisor restart يمكننا الآن أن نتعلم كيف نستطيع إضافة البرامج بعد أن ثبتنا Supervisor على نظامنا. إضافة برنامج تضاف البرامج الجديدة إلى Supervisor عبر ملفات الضبط، التي تُعلِم Supervisor ما هو الملف التنفيذي الذي عليه تشغيله، وما هي متغيرات البيئة (environmental variables) التي يجب ضبطها، وآلية التعامل مع المخرجات. ملاحظة: جميع البرمجيات التي تعمل ضمن Supervisor يجب أن تُشغَّل في الأمامية ("foreground" وأحيانًا تسمى "non-daemonising"). فلو كان البرنامج -افتراضيًا- يشتق العملية fork ويشغل نفسه بالخلفية، فيجب أن تعود إلى دليل ذاك البرنامج لكي تعرف ما هو الخيار المستخدم لتفعيل هذا النمط، وإلا فلن يستطيع Supervisor تحديد حالة البرنامج تحديدًا صحيحًا. لغرض هذا الدرس، سنفترض وجود سكربت صَدَفة (shell script) الذي نريد أن نشغله بشكلٍ دائم والمحفوظ في المسار ‎/usr/local/bin/long.sh ويبدو كالآتي: #!/bin/bash while true do # Echo current date to stdout echo `date` # Echo 'error!' to stderr echo 'error!' >&2 sleep 1 done chmod +x /usr/local/bin/long.sh من الناحية العملية، السكربت السابق عديم الجدوى، لكنه يسمح لنا بتغطية أساسيات ضبط Supervisor. ملفات ضبط البرمجيات في Supervisor موجودةٌ في مجلد ‎/etc/supervisor/conf.d، يوضع عمومًا كل برنامج في ملف خاص به ذي اللاحقة ‎.conf مثالٌ عن ملف الضبط للسكربت الخاص بنا الذي سنحفظه في المسار ‎/etc/supervisor/conf.d/long_script.conf سيبدو كما يلي: [program:long_script] command=/usr/local/bin/long.sh autostart=true autorestart=true stderr_logfile=/var/log/long.err.log stdout_logfile=/var/log/long.out.log سننظر الآن لوظيفة وأهمية كل سطر من الأسطر السابقة، وسأخبرك بالتعديلات التي قد ترغب بإجرائها عند إضافة ملفات ضبط لبرامجك: [program:long_script] command=/usr/local/bin/long.sh يبدأ ملف الضبط بتعريف برنامج اسمه "long_script" ويُحدِّد المسار الكامل للبرنامج. autostart=true autorestart=true السطران السابقان يُحدَّدان السلوك التلقائي الافتراضي للسكربت في مختلف الحالات. الخيار autostart يخبر Supervisor أنَّ البرنامج يجب أن يُشغَّل عند إقلاع النظام. ضبط هذه القيمة إلى false سيستوجب تشغيلًا يدويًا للبرنامج بعد كل إعادة إقلاع للنظام. الخيار autorestart يُحدِّد كيف على Supervisor أن يتعامل مع البرنامج في حال توقف عن العمل، وهنالك ثلاثة خيارات: false: إخبار Supervisor ألّا يعيد تشغيل البرنامج إطلاقًا بعد توقفه عن العمل true: إخبار Supervisor أن يعيد تشغيل البرنامج دومًا في حال توقف عن العمل unexpected: إخبار Supervisor أن يُعيد التشغيل في حال انتهى تنفيذ البرنامج بعد حدوث خطأ (افتراضيًا: أي قيمة ما عدا 0 و 2، وهذه القيمة هي قيمة حالة الخروج [exit status] التي يرسلها البرنامج بعد انتهاء تنفيذه). stderr_logfile=/var/log/long.err.log stdout_logfile=/var/log/long.out.log السطران الأخيران يُعرِّفان المسار الافتراضي لملفَي السجل الخاصَين بالبرنامج. وكما هو واضح من اسمَي الخيارين: سيُعاد توجيه مجرى الخرج القياسي (stdout) ومجرى الخطأ القياسي (stderr) إلى المسارَين الموجودَين في الخيارَين stdout_logfile و stderr_logfile على التوالي وبالترتيب. يجب أن يكون المجلد المُحدَّد موجودًا قبل تشغيل البرنامج، إذ لن يحاول Supervisor أن يُنشِئ أيّة مجلدات غير موجودة. الضبط الذي أنشأناه هو أقل ضبط ممكن لكي يعمل Supervisor. يحتوي التوثيق على خياراتِ ضبطٍ أخرى كثيرة لتخصيص كيفية تنفيذ البرنامج. بعد إنشاء وحفظ ملف الضبط، سنتمكن من إعلام Supervisor عن برنامجنا الجديد عبر الأمر supervisorctl. علينا أولًا أن نطلب من Supervisor أن يعيد قراءة ملفات الضبط الموجودة في مجلد ‎/etc/supervisor/conf.d عبر الأمر: supervisorctl reread ثم نُتبِعُ ذلك بالطلب منه أن يتصرف وفقًا لما تغيّر بالأمر: supervisorctl update عندما تُجري أيّة تعديلات على أي ملف ضبط لأي برنامج، فعليك تنفيذ الأمرين السابقين لتأخذ التعديلات مجراها. يجب أن يعمل برنامج الآن، ويمكنك التحقق من ذلك بالنظر إلى ناتج ملف السجل: $ tail /var/log/long.out.log Sat Jul 20 22:21:22 UTC 2013 Sat Jul 20 22:21:23 UTC 2013 Sat Jul 20 22:21:24 UTC 2013 Sat Jul 20 22:21:25 UTC 2013 Sat Jul 20 22:21:26 UTC 2013 Sat Jul 20 22:21:27 UTC 2013 Sat Jul 20 22:21:28 UTC 2013 Sat Jul 20 22:21:29 UTC 2013 Sat Jul 20 22:21:30 UTC 2013 Sat Jul 20 22:21:31 UTC 2013 إدارة البرامج من المؤكد أنَّه سيحين وقتٌ تريد فيه أن توقف أو تعيد تشغيل أو ترى حالة برامجك المُشغَّلة. لدى برنامج supervisorctl -الذي استخدمناه في الأعلى- نمطٌ تفاعليٌ نستطيع عبره إعطاء أوامر للتحكم بالبرامج. أدخِل supervisorctl دون وسائط للدخول إلى النمط التفاعلي: $ supervisorctl long_script RUNNING pid 12614, uptime 1:49:37 supervisor> سيعرض supervisorctl (عند تشغيله) حالة وزمن تشغيل جميع البرامج، وذلك متبوعٌ بإظهار مِحَث (prompt) لإدخال الأوامر. أدخِل الأمر help لإظهار جميع الأوامر التي نستطيع استخدامها: supervisor> help default commands (type help ): ===================================== add clear fg open quit remove restart start stop update avail exit maintail pid reload reread shutdown status tail version يمكنك استخدام الأوامر start و stop و restart متبوعةً باسم البرنامج الذي تريد تشغيله أو إيقافه أو إعادة تشغيله على التوالي: supervisor> stop long_script long_script: stopped supervisor> start long_script long_script: started supervisor> restart long_script long_script: stopped long_script: started يمكنك استخدام الأمر tail لمشاهدة أحدث التغيرات التي طرأت في سجلات الخرج القياسي والخطأ القياسي في برنامجنا: supervisor> tail long_script Sun Jul 21 00:36:10 UTC 2013 Sun Jul 21 00:36:11 UTC 2013 Sun Jul 21 00:36:12 UTC 2013 Sun Jul 21 00:36:13 UTC 2013 Sun Jul 21 00:36:14 UTC 2013 Sun Jul 21 00:36:15 UTC 2013 Sun Jul 21 00:36:17 UTC 2013 supervisor> tail long_script stderr error! error! error! error! error! error! Error! يمكننا عرض حالة البرامج عبر الأمر status للتأكد من وضعها بعد إجراء أيّة تعديلات على إحداها: supervisor> status long_script STOPPED Jul 21 01:07 AM وفي النهاية، يمكنك الخروج من النمط التفاعلي بالضغط على Ctrl-C أو بكتابة quit في المِحَث: supervisor> quit هذا كل ما في الأمر! لقد تعلمتَ أساسيات إدارة البرامج دائمة التشغيل عبر Supervisor، ولن يصعب عليك فعل المِثل لبقية برامجك. إذا كانت لديك أيّة استفسارات، فاسألها في التعليقات. ترجمة -وبتصرّف- للمقال How To Install and Manage Supervisor on Ubuntu and Debian VPS.
×
×
  • أضف...