التابع Process.kill
في روبي
يرسل التابع kill
إشارة محدَّدة إلى عملية ذات مُعرِّف معطى أو إلى جميع العمليات التي معرِّف المجموعة التي تملكه مساويًا إلى معرِّف المجموعة للعملية المستدعية.
البنية العامة
kill(signal, pid, ...) → integer
المعاملات
signal
عدد صحيح يمثِّل رقم الإشارة أو سلسلة نصية تمثِّل اسم الإشارة بحسب POSIX (مع أو بدون السابقة SIG
). إن كان عددًا صحيحًا موجبًا، إن كان عددًا سالبًا (يبدأ بإشارة الناقص)، فستُقتَل مجموعات العملية (process groups) بدلًا من العمليات. ليست جميع الإشارات مدعومة على كل المنصات. مفاتيح وقيم Signal.list
هي أسماء وأرقام إشارة مشهورة.
إن كانت قيمة هذا المعامل عددًا صحيحًا ولكن لا يشير إلى أية إشارة، فسيُرمى الاستثناء Errno::EINVAL
أو RangeError
. باستثناء ذلك وما لم يكن المعامل signal
سلسلةً نصيةً أو رمزًا يشير إلى اسم إشارة معروف، سيُرمَى الاستثناء ArgumentError
.
pid
عدد صحيح يشير إلى مُعرِّف العملية المراد إرسال الإشارة إليها. إن كانت قيمته 0، فستُرسل الإشارة signal
إلى جميع العمليات التي معرِّف المجموعة التي تملكه مساويًا إلى معرِّف المجموعة للعملية المستدعية. سيَرمَى الاستثناء Errno::ESRCH
أو RangeError
إن كانت قيمة المُعرِّف pid
غير صالحة، أو سيُرمَى الاستثناء Errno::EPERM
عند فشل العملية بسبب عدم امتلاك الأذونات. في هذه الحالات، قد تُرسَل إشارات إلى عمليات سابقة.
القيم المعادة
يعاد عدد صحيح يشير إلى العملية التي أرسلت الإشارة إليها.
أمثلة
مثال على استعمال التابع kill
:
pid = fork do
Signal.trap("HUP") { puts "Ouch!"; exit }
# ... do some work ...
end
# ...
Process.kill("HUP", pid)
Process.wait
ناتج تنفيذ هذا المثال هو:
Ouch!
انظر أيضًا
- التابع
abort
: ينهي تنفيذ العملية مباشرةً بشكل فعَّال عبر استدعاءKernel.exit(false)
. - التابع
exit
: يبدأ عملية الإنهاء لشيفرة روبي البرمجية عبر اطلاق الاستثناءSystemExit
.