التابع Process.setrlimit
في روبي
يضبط التابع setrlimit
قيد المورد (resource limit) للعملية.
اطلع على الدليل man لدالة النظام setrlimit(2)
لمزيد من التفاصيل.
البنية العامة
setrlimit(resource, cur_limit, max_limit) → nil click to toggle source
setrlimit(resource, cur_limit) → nil
المعاملات
resource
يشير إلى نوع المورد المراد ضبط قيوده. يُحدَّد برمزٍ مثل CORE:
، أو سلسلة نصية مثل "CORE"
، أو ثابت مثل Process::RLIMIT_CORE
. الموارد المتاحة تتعلق بنظام التشغيل. قد تدعم روبي الموارد التالية:
المورد | الوصف |
---|---|
AS | الذاكرة الكلية المتاحة بالبايت.
(SUSv3، و NetBSD، و FreeBSD، و OpenBSD باستثناء 4.4BSD-Lite) |
CORE | حجم النواة بالبايت.
(SUSv3) |
CPU | زمن المعالجة (CPU time، أو زمن العملية) بالثانية.
(SUSv3) |
DATA | قطعة البيانات (data segment) بالبايت.
(SUSv3) |
FSIZE | حجم الملف بالبايت.
(SUSv3) |
MEMLOCK | الحجم الكلي من أجل mlock(2) بالبايت.
(4.4BSD، و GNU/Linux) |
MSGQUEUE | الحجم المحجوز من أجل طوابير رسائل POSIX بالبايت.
(GNU/Linux) |
NICE | عدد يمثِّل الحد الأعلى في قيمة nice(2) للعملية.
(GNU/Linux) |
NOFILE | عدد يمثِّل واصفات الملفات.
(SUSv3) |
NPROC | عدد العمليات للمستخدم.
(4.4BSD، و GNU/Linux) |
RSS | حجم الذاكرة المثبَّتة (resident memory size) بالبايت.
(4.2BSD، و GNU/Linux) |
RTPRIO | عدد يمثِّل الحد الأعلى للأولوية في الوقت الفعلي (real-time priority) في العملية.
(GNU/Linux) |
RTTIME | توقيت المعالج (CPU time) من أجل العملية في الوقت الفعلي بالميكروثانية.
(GNU/Linux) |
SBSIZE | حجم جميع المخازن المؤقتة للمقبس (socket buffers) بالبايت.
(NetBSD، و FreeBSD) |
SIGPENDING | عدد الإشارات المنتظرة في الطابور المسموحة.
(GNU/Linux) |
STACK | حجم المكدس بالبايت.
(SUSv3) |
cur_limit
يحدِّد هذا المعامل القيد الحالي (الرخو [soft]) المراد ضبطه. يمكن أن تكون قيمة هذا المعامل :INFINITY
، أو "INFINITY"
أو Process::RLIM_INFINITY
الذي يعني أن المورد ليس محدودًا (غير مقيد). يمكن أن يكون أيضًا Process::RLIM_SAVED_MAX
، أو Process::RLIM_SAVED_CUR
أو ما مايقابلهما من رموز أو سلاسل نصية.
max_limit
يحدِّد هذا المعامل القيد الأقصى (الصارم [hard]) المراد ضبطه. إن لم يُعطَ هذا المعامل، فستُستعمَل قيمة المعامل cur_limit
عوضًا عنه. يمكن أن تكون قيمة هذا المعامل :INFINITY
، أو "INFINITY"
أو Process::RLIM_INFINITY
الذي يعني أن المورد ليس محدودًا. يمكن أن يكون أيضًا Process::RLIM_SAVED_MAX
، أو Process::RLIM_SAVED_CUR
أو ما مايقابلهما من رموز أو سلاسل نصية.
القيم المعادة
تعاد القيمة nil
بعد اكتمال تنفيذ العملية.
أمثلة
المثال الآتي يرفع قيمة الحد الحالي للعملية الأساسية CORE إلى أقصى حد، وذلك لكي يصبح تفريغ محتويات العملية ممكنًا عند انهيارها:
Process.setrlimit(:CORE, Process.getrlimit(:CORE)[1])
انظر أيضًا
- التابع
getrlimit
: يجلب قيد المورد (resource limit) للعملية. - التابع
setpriority
: يضبط قيمة أولوية الجدولة (scheduling priority) لعملية محدَّدة أو لمجموعة مالكة أو مستخدم مالك لعملية.