مجموعات العمليات وجلسات العمل والتحكم في الوظائف
مجموعات العمليات وجلسات العمل والتحكم في الوظائف
في هذا الفصل ، سوف نتعرف على مجموعات العمليات والجلسات والتحكم في الوظائف.
مجموعة العمليات - مجموعة العمليات هي مجموعة من عملية واحدة أو أكثر. تتكون مجموعة العمليات من عملية واحدة أو أكثر تشترك في نفس معرف مجموعة العملية (PGID). معرف مجموعة العملية (PGID) من نفس النوع (pid_t) مثل معرف العملية. تحتوي مجموعة العمليات على قائد مجموعة العملية ، وهي العملية التي تنشئ المجموعة والتي يصبح معرف العملية الخاص بها معرف مجموعة العملية للمجموعة.
الجلسات - هي عبارة عن مجموعة من مجموعات العمليات المختلفة.
التحكم في الوظيفة - يسمح هذا لمستخدم shell بتنفيذ أوامر (أو مهام) متعددة في وقت واحد ، واحد في المقدمة وكل ما تبقى في الخلفية. من الممكن أيضًا نقل الوظائف من المقدمة إلى الخلفية والعكس صحيح.
دعنا نفهم ذلك بمساعدة أمثلة البرنامج / البرامج التي تستخدم shell (BASH).
برنامج شل النصي (في BASH) لتنفيذ الأوامر الأساسية (التاريخ ، وصدى الصوت ، والسكون ، و cal) المسماة basic_commands.sh
برنامج شل النصي (في BASH) لتنفيذ الأوامر الأساسية (ps ، echo)
#!/bin/bash #basic_commands.sh date echo "Now sleeping for 250 seconds, so that testing job control functionality is smooth" sleep 250 cal
#!/bin/bash #process_status.sh ps echo "Now sleeping for 200 seconds, so that testing job control functionality is smooth" sleep 200 ps
استخدم الأمر chmod لمنح الملف أذونات التنفيذ. بشكل افتراضي ، سيحصل الملف العادي على أذونات القراءة والكتابة فقط وليس تنفيذ الأذونات.
لإيقاف عملية التشغيل الحالية ، تحتاج إلى إدخال CTRL + Z. يمنحك هذا رقم الوظيفة. يمكن استئناف المهمة إما في المقدمة أو في الخلفية. إذا لزم الأمر ، لاستئناف المهمة في المقدمة ، استخدم الأمر "fg". إذا لزم الأمر ، لاستئناف المهمة في الخلفية ، استخدم الأمر "bg". باستخدام هذا ، سيتم تشغيل آخر عملية تم إيقافها فقط. ماذا لو كنت تريد البدء بخلاف آخر عملية تم إيقافها؟ ما عليك سوى استخدام رقم المهمة بعد fg أو bg (على سبيل المثال ، bg٪ 2 أو bg٪ 3 ، إلخ). إذا كانت الوظيفة قيد التشغيل في الخلفية ، يمكنك تشغيل أي مهام أخرى في المقدمة. للحصول على قائمة الوظائف ، استخدم الأمر ، الوظائف. من الممكن أيضًا إنهاء العملية إما باستخدام CTRL + C أو أمر القتل. يمكنك تمرير رقم الوظيفة أثناء استخدام أمر القتل.
تحقق من الإخراج التالي الذي يوضح إيقاف الوظائف ، ونقل الوظائف من المقدمة إلى الخلفية والعكس صحيح ، وإنهاء الوظائف ، إلخ.
chmod u+x basic_commands.sh chmod u+x process_status.sh ./basic_commands.sh Wed Jul 5 18:30:27 IST 2017 Now sleeping for 250 seconds, so that testing job control functionality is smooth ^Z [1]+ Stopped ./basic_commands.sh ./process_status.sh PID TTY TIME CMD 2295 pts/1 00:00:00 bash 4222 pts/1 00:00:00 basic_commands. 4224 pts/1 00:00:00 sleep 4225 pts/1 00:00:00 process_status. 4226 pts/1 00:00:00 ps Now sleeping for 200 seconds, so that testing job control functionality is smooth ^Z [2]+ Stopped ./process_status.sh jobs [1]- Stopped ./basic_commands.sh [2]+ Stopped ./process_status.sh fg ./process_status.sh ^Z [2]+ Stopped ./process_status.sh fg %2 ./process_status.sh ^Z [2]+ Stopped ./process_status.sh fg %1 ./basic_commands.sh ^Z [1]+ Stopped ./basic_commands.sh jobs [1]+ Stopped ./basic_commands.sh [2]- Stopped ./process_status.sh bg %2 [2]- ./process_status.sh & fg ./basic_commands.sh ^Z [1]+ Stopped ./basic_commands.sh jobs [1]+ Stopped ./basic_commands.sh [2]- Running ./process_status.sh & fg %2 ./process_status.sh ^Z [2]+ Stopped ./process_status.sh jobs [1]- Stopped ./basic_commands.sh [2]+ Stopped ./process_status.sh kill %1 %2 [1]- Stopped ./basic_commands.sh [2]+ Stopped ./process_status.sh [1]- Terminated ./basic_commands.sh [2]+ Terminated ./process_status
<< الصفحة الرئيسية