المحتويات

المقدمة

معلومات أساسية

معلومات أساسية حول إنهاء تطبيق IOx

منع إيقاف حاويات الطراز IOx عند إنهاء التطبيق/الهدف

المقدمة

يوضح هذا المستند كيفية أستكشاف أخطاء تطبيقات IOx وإصلاحها أو تصحيح أخطائها التي تواجه مشكلة في بدء التشغيل أو توقفها بشكل غير متوقع.

معلومات أساسية

عند تطوير تطبيقات IOx، فإن الطريقة الأفضل هي تطويره على منصة أخرى و/أو وضع آلية تحديد الوصول. وبمجرد إختبار تطبيق IOx المطلوب وجاهزيته، يمكن تغليفه ونشرها على جهاز يدعم تقنية IOx. وفي بعض الحالات، لا يعمل هذا النشر كما هو متوقع، فقد يتوقف التطبيق بشكل غير متوقع أو قد لا يبدأ حتى.

يجب إيقاف السلوك الافتراضي لكل من IOx VM/container/application بمجرد إنهاء الأمر الهدف. وهذا يجعل من الصعب أستكشاف الأخطاء وإصلاحها في حالة حدوث أمر غير متوقع مع إختفاء جميع المعلومات غير المتواصلة. والنتيجة الأخرى هي أنه يستهلك الكثير من الوقت عندما تريد اللعب/التجربة مع قدرات تطبيقات IOx. يتطلب تشغيل تطبيق/هدف/أمر/برنامج نصي آخر تغيير الحزمة على الأقل.yaml وإنشاء الحزمة الجديدة وإلغاء تنشيط التطبيق الحالي والترقية باستخدام الحزمة الجديدة وإعادة تنشيط التطبيق وتشغيله.

معلومات أساسية حول إنهاء تطبيق IOx

لا يوفر "المدير المحلي" وعميل IOx الكثير من المعلومات حول سبب توقف التطبيقات/الحاويات/الأجهزة الافتراضية (VMs). ولحسن الحظ، يتتبع WatchDog.log هذا ويزودك أيضا بآخر رمز خروج/إرجاع للتطبيق. على الرغم من أن هذا قد لا يساعدك دائما، إلا أنه في الكثير من الحالات يقودك إلى السبب الذي تبحث عنه.

لجلب WatchDog.log مع عميل IOx:

[jedepuyd@db ~]$ ioxclient app logs tail iox_docker_test watchDog.log 10

Currently active profile :  default

Command Name: application-logs-tail

App/Service : iox_docker_test, Logfile : watchDog.log, viewing last 10 lines

APP END TIME:1498207460

Time taken by App : 0 minutes and 0 seconds.

Got the ip address - 10.197.215.227 for interface eth0

All interfaces got the ips

APP START TIME:1498207536

App iox_docker_test started with PID : 11

Monitoring this process now

App iox_docker_test completed with exit code: 127

APP END TIME:1498207536

Time taken by App : 0 minutes and 0 seconds.

لجلب السجل باستخدام Local Manager:

1. سجل الدخول إلى المدير المحلي.

2. كما هو موضح في الصورة، انقر فوق بدء إلغاء تنشيط إدارة للتطبيق ذي الصلة

3. حدد علامة التبويب سجلات ، كما هو موضح في الصورة:

4. قم بتنزيل WatchDog.log

على سبيل المثال، يتم إنهاء هذا التطبيق بشكل غير متوقع ويمكنك الاطلاع على ذلك في watchDog.log

APP START TIME:1498207536

App iox_docker_test started with PID : 11

Monitoring this process now

App iox_docker_test completed with exit code: 127

APP END TIME:1498207536

كما ترى في القصاصة الآنفة الذكر، كان رمز الخروج 127. هذا هو رمز إرجاع محجوز وهو يعني: لم يتم العثور على الأمر، والذي يشير إلى تحديد أمر معيب كهدف أو أن البرنامج النصي الذي تم بدء تشغيله يحاول إستدعاء أمر معيب.

رموز الخروج المحجوزة الأكثر شيوعا:

آر سي

معنى

تعليق

1

CatAll for General Errors

أخطاء متنوعة مثل "التقسيم على صفر" وغيرها من العمليات غير المسموح بها

2

إساءة إستعمال بنايات الصدف

الكلمة الأساسية أو الأمر مفقود، أو مشكلة الأذن (وألغي كود الإرجاع على مقارنة ملفات ثنائية فاشلة).

126

تعذر تنفيذ الأمر

مشكلة الإذن أو الأمر ليس تنفيذيا

127

لم يتم العثور على الأمر

مشكلة محتملة مع $PATH أو خطأ مطبعي

128

وسيطة غير صالحة للإنهاء (RC>255)

لا تأخذ الخروج إلا حلقات عدد صحيح في النطاق 0 - 255

128+ن

إشارة خطأ فادح "n"

إرجاع رمز الخروج 137 (128 + 9) -> إشارة خطأ التطبيق كانت 9

130

تم إنهاؤه بواسطة Ctrl+C

يعتبر Control-C إشارة خطأ قاتلة 2، (130 = 128 + 2، راجع أعلاه)

255

حالة الخروج خارج النطاق (RC>255)

لا تأخذ الخروج إلا حلقات عدد صحيح في النطاق 0 - 255

يمكن الحصول على المزيد من المعلومات حول هذا الموضوع هنا: http://tldp.org/LDP/abs/html/exitcodes.html

منع إيقاف حاويات الطراز IOx عند إنهاء التطبيق/الهدف

يوفر الموضوع أعلاه معلومات حول كيفية أستكشاف أخطاء التطبيق المعيب وإصلاحها، ولكنه لا يمنع تطبيق IOx من التوقف. وهذا يعني أن المعلومات القيمة على الأرجح المتعلقة باستكشاف الأخطاء وإصلاحها قد إختفت نظرا لأن جميع البيانات غير المتواصلة لم تعد موجودة.

وكما ذكرنا أعلاه، تتمثل حالة إستخدام أخرى في الاستفادة من إمكانات تطبيق IOx الذي تم بدء تشغيله أو المرونة باستخدام الأوامر والوسيطات.

لمنع إنتهاء تطبيقات IOx عند نهاية التطبيق، يمكنك تمرير تصحيح الأخطاء إلى أمر التنشيط:

[jedepuyd@db ~]$ ioxclient app activate -debug on testdebug

Currently active profile :  default

Command Name: application-activate

App testdebug is Activated

[jedepuyd@db ~]$ ioxclient app start testdebug

Currently active profile :  default

Command Name: application-start

App testdebug is Started

[jedepuyd@db ~]$ ioxclient app console testdebug

Currently active profile :  default

Command Name: application-console

Console setup is complete..

Running command : [ssh -p 2222 -i testdebug.pem appconsole@10.48.43.197]

/ #

في المثال أعلاه، بعد تنشيط علامة -debug وبدء تشغيلها، يمكنك الوصول إلى الحاوية حتى في حالة إنهاء التطبيق. يمكنك تشغيل أوامر أخرى هنا، كما يمكنك تجربة التطبيق بحرية في البيئة التي يتم فيها تشغيل التطبيق. يوفر ذلك الكثير من الوقت في حل مشكلات التطبيقات أو الحصول على الهدف الصحيح ومجموعة الوسيطات الصحيحة.