انتقل إلى المحتوى الرئيسي

الفصل 4.3 - التحكم في العمليات

الأهداف التعليمية​

في نهاية هذا الفصل، ستكون قادرًا على:

  • بدء العمليات
  • إيقاف وقتل العمليات
  • تعليق واستئناف
  • إدارة العمليات في الخلفية
  • فهم الإشارات

بدء عملية​

سطر الأوامر​

# عملية في المقدمة
commande

# عملية في الخلفية
commande &

# مثال
sleep 60 &

nohup - تجاهل SIGHUP​

# الاستمرار بعد قطع الاتصال
nohup commande &

# إعادة توجيه المخرجات
nohup commande > output.log 2>&1 &

إيقاف عملية​

kill - إرسال إشارة​

# إشارة TERM (إنهاء بلطف)
kill PID
kill -TERM PID
kill -15 PID

# إشارة KILL (إجباري)
kill -9 PID
kill -KILL PID

# بالاسم
killall nom_processus
killall -9 nom_processus # إجباري

# بالنمط
pkill pattern
pkill -9 pattern

الإشارات الشائعة​

الإشارةالرقمالإجراء
SIGHUP1Hang up (إعادة تحميل التكوين)
SIGINT2Interrupt (Ctrl+C)
SIGQUIT3Quit (core dump)
SIGTERM15Terminate (بلطف)
SIGKILL9Kill (إجباري، لا يمكن تجاهله)
SIGSTOP19Stop (تعليق)
SIGCONT18Continue (استئناف)

تعليق واستئناف​

تعليق​

# إرسال SIGSTOP
kill -STOP PID
kill -19 PID

# أو باستخدام Ctrl+Z في الطرفية
# (تعليق العملية في المقدمة)

استئناف​

# إرسال SIGCONT
kill -CONT PID
kill -18 PID

# في المقدمة
fg

# في الخلفية
bg

العمليات في الخلفية​

jobs - عرض الوظائف​

# عرض الوظائف
jobs

# مع PIDs
jobs -l

# الوظائف المنتهية أيضًا
jobs -a

fg و bg​

# وضع في المقدمة
fg
fg %1 # رقم الوظيفة 1
fg %nom # وظيفة بالاسم

# وضع في الخلفية
bg
bg %1

disown - فصل وظيفة​

# فصل عن الطرفية
disown %1
disown -h %1 # عدم إرسال SIGHUP

أمثلة عملية​

السيناريو 1: عملية لا تستجيب​

# 1. العثور على PID
ps aux | grep processus

# 2. محاولة بلطف
kill PID

# 3. الانتظار لبضع ثوان
sleep 5

# 4. إذا كانت لا تزال موجودة، إجبار
kill -9 PID

السيناريو 2: عملية في الخلفية​

# بدء في الخلفية
long_script.sh &

# عرض الوظائف
jobs

# وضع في المقدمة
fg %1

# تعليق (Ctrl+Z)
# استئناف في الخلفية
bg %1

السيناريو 3: عملية تستمر بعد قطع الاتصال​

# باستخدام nohup
nohup long_task.sh > output.log 2>&1 &

# أو باستخدام screen/tmux
screen -S session
# بدء العملية
# فصل: Ctrl+A ثم D
# إعادة الاتصال: screen -r session

الإشارات واستخدامها​

SIGTERM (15) - إنهاء بلطف​

kill -TERM PID
# يمكن للعملية:
# - حفظ البيانات
# - إغلاق الملفات
# - تنظيف الموارد

SIGKILL (9) - إنهاء إجباري​

kill -9 PID
# العملية:
# - لا يمكن تجاهلها
# - تُقتل فورًا
# - لا يمكن التنظيف

استخدم فقط إذا لم يعمل SIGTERM!

SIGHUP (1) - إعادة تحميل التكوين​

# غالبًا ما يستخدم لإعادة تحميل التكوين
kill -HUP PID
# مثال: إعادة تحميل nginx
kill -HUP $(pidof nginx)

ملخص​

في هذا الفصل، تعلمت:

بدء: commande، commande &، nohup
إيقاف: kill، killall، pkill مع الإشارات
الإشارات: TERM (بلطف)، KILL (إجباري)، HUP (إعادة تحميل)
تعليق: SIGSTOP، Ctrl+Z
استئناف: SIGCONT، fg، bg
الخلفية: jobs، fg، bg، disown


الخطوات التالية​

الفصل 4.4: الأولويات وقيم Nice
الفصل 4.5: العمليات والموارد


تم إنشاء الفصل في: ديسمبر 2024