أوامر لينكس

امر screen في لينكس ما هو ؟ ولماذا يستخدم؟ وكيفية استخدامه؟

برنامج screen في نظام التشغيل لينكس يسمح لك بمحاكاة اكثر من نافذة (multiple windows) في طرفية لينكس ويونكس وشبيهات يونكس. ويعتبر من اهم استخدامات الامر screen هو من اجل فصل عملية قد يطول وقت تنفيذها عن الجلسة الحالية  ويمكن فيما بعد ضمها من جديد واستكمال العمل عليها.

باستخدامك لـ screen سوف تنشئ افتراضيا اكثر من طرفية SSH في نفس الطرفية التي تعمل عليها وبالتالي يمكنك التنقل بين الشاشات بكل سهولة ايضا.

يمكن تنصيب البرنامج عن طريق yum install screen في توزيعات ريدهات وشبيهاتها او عن طريق الامر apt-get install screen في توزيعات ديبيان وشبيهاتها.

لماذا يستخدم الامر screen

حتى نفهم اهمية استخدام الامر screen في بعض الاحيان دعنا ناخذ المثال التالي:

لو فرضنا ان لدينا ملف بحجم 100 جيجا بايت نود ان نقوم بتنزيله من شبكة الانترنت الى الخادم عن طريق الامر wget ، ولكن كما نعلم فان حجم 100 جيجا بايت يعتبر كبيرا وسوف يؤخذ وقتا طويلا ربما للتنزيل من شبكة الانترنت فماذا سوف يحدث لو نفذنا امر wget في نافذة SSH ومن ثم بعد بضع ثواني تم قطع اتصالنا بالخادم؟ بكل تاكيد الجواب هو ان عملية التحميل سوف تتوقف وسوف يتم انهائها.

ياتي هنا دور استخدام الامر screen ، حيث اننا نقوم باستخدام الامر screen والدخول الى الشاشة الافتراضية وتنفيذ الامر wget وبعدها لو تم قطع اتصالنا بالسيرفر لاي سبب من الاسباب فانه يمكننا اعادة الاتصال بالسيرفر ومن ثم الدخول الى الامر screen لنجد ان الامر wget ما زال يعمل بشكل طبيعي ولم يحدث عليه اي عملية انقطاع.

دعنا نجرب ذلك من ناحية عملية ، لدينا الملف على الرابط التالي https://speed.hetzner.de/10GB.bin وهو بحجم 10 جيجا بايت وهو ملف ببيانات افتراضية لغايات التجربة ونود ان نقوم باختبار screen لذلك.

سجل الدخول الى طرفية SSH ومن ثم نفذ الاوامر التالية

screen
wget https://speed.hetzner.de/10GB.bin

وبعد بدء التحميل للملف قم وبشكل مفاجئ على اغلاق نافذة ssh.
بالوضع الطبيعي لو حصل هذا الامر بدون ادخال الامر في برنامج screen فان عملية التحميل سوف يتم انهائها ، ولكن الان جرب الدخول الى طرفية SSH مرة اخرى ونفذ الامر

screen -r

والتي تعني استعادة ما كان يتم تنفيذه في شاشة الامر screen الى النافذة الحالية ، وسوف تلاحظ ان عملية التحميل ما زالت جارية ولم يحدث اي توقف لها ، لا بل وانها لم تتاثر اصلا بعملية اغلاقك للنافذة حيث انه عند اغلاقك للنافذة بقي الامر قيد التنفيذ (الملف يتم تنزيله حتى وانت مسجلا الخروج من طرفية SSH).

للعلم اثناء العمل داخل الامر screen يمكنك الخروج من الشاشة والعودة للشاشة الاساسية مع ابقاء الامر فعالا وذلك بالضغط على CTRL+a مع حرف d والتي تعني detach وللعودة للشاشة كل ما عليك هو تنفيذ الامر screen -r ، واما في حالة كان هناك اكثر من امر screen يعمل حاليا فانه بامكانك تنفيذ الامر screen -ls والذي سوف يقوم بعرض الشاشات المتوفرة حاليا ، مثلا


$  screen -ls
There are screens on:
32696.pts-0.osg1 (Detached)
615.pts-0.osg1 (Detached)
2 Sockets in /var/run/screen/S-root.

وعندها يمكنك العودة للشاشة المطلوبة باضافة رقمها بعد الامر ، مثلا للعودة للشاشة 615 فاننا نقوم بتنفيذ الامر screen -r 615 وهكذا.

ولانهاء الجلسة مع الامر screen للشاشة الحالية كل ما عهليك هو تنفيذ الامر exit داخل الشاشة.

للمزيد من المعلومات حول الامر والبرامترز المتوفرة معه انصحك بمراجعة الرابط التالي.

مطور تطبيقات انترنت واداري سيرفرات لينكس.

أضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.