صفحة الصنف Signal
في روبي
< Ruby
تسمح العديد من أنظمة التشغيل بإرسال إشارات إلى العمليات (processes) قيد التشغيل.
لبعض الإشارات تأثير محدد على العملية، بينما تكون أخرى مرتبطة بالشيفرة البرمجية، وتتصرف بناء عليها. على سبيل المثال، قد تقوم العملية بإمساك (trap) إشارة USR1
واستخدامها في عملية التصحيح (debugging)، أو قد تستخدم الإشارة TERM
لبدء إيقاف تشغيل مُراقب (controlled shutdown).
pid = fork do
Signal.trap("USR1") do
$debug = !$debug
puts "Debug now: #$debug"
end
Signal.trap("TERM") do
puts "Terminating..."
shutdown()
end
# . . . do some work . . .
end
Process.detach(pid)
# Controlling program:
Process.kill("USR1", pid)
# ...
Process.kill("USR1", pid)
# ...
Process.kill("TERM", pid)
الناتج سيكون:
Debug now: true
Debug now: false
Terminating...
أسماء الإشارة المتوفرة وتفسيراتها تعتمد على النظام المستخدم. كما الحال مع صياغات تسليم الإشارات ( Signal delivery semantics). لهذا فلا ينبغي التعويل على شكل محدد من تسليم الإشارات.
توابع الصنف العامة (Public Class Methods)
التابع list
بعبد قائمة بأسماء الإشارة التي تم تعيينها إلى أرقام الإشارة الأصلية المقابلة.
التابع signame
يحول رقم الإشارة إلى اسم إشارة.
التابع trap
يحدد التابع trap معالج الإشارات (handling of signals)