本文簡要介紹ruby語言中 Process.setrlimit
的用法。
用法
setrlimit(resource, cur_limit, max_limit) → nil
setrlimit(resource, cur_limit) → nil
設置進程的資源限製。 cur_limit
表示當前(軟)限製,max_limit
表示最大(硬)限製。
如果沒有給出max_limit
,則使用cur_limit
。
resource
表示要限製的資源種類。它應該是諸如 :CORE
之類的符號、諸如 "CORE"
之類的字符串或諸如 Process::RLIMIT_CORE
之類的常量。可用資源取決於操作係統。 Ruby 可能支持以下資源。
- AS
-
總可用內存(字節)(SUSv3、NetBSD、FreeBSD、OpenBSD 但 4.4BSD-Lite)
- CORE
-
核心大小(字節)(SUSv3)
- CPU
-
CPU 時間(秒)(SUSv3)
- DATA
-
數據段(字節)(SUSv3)
- FSIZE
-
文件大小(字節)(SUSv3)
- MEMLOCK
-
mlock(2) 的總大小(字節)(4.4BSD,GNU/Linux)
- MSGQUEUE
-
POSIX 消息隊列的分配(字節)(GNU/Linux)
- NICE
-
進程的 nice(2) 值(數字)上限(GNU/Linux)
- NOFILE
-
文件說明符(數量)(SUSv3)
- NPROC
-
用戶的進程數 (number) (4.4BSD, GNU/Linux)
- RSS
-
常駐內存大小(字節)(4.2BSD,GNU/Linux)
- RTPRIO
-
進程的實時優先級上限(數字)(GNU/Linux)
- RTTIME
-
實時進程的 CPU 時間(我們)(GNU/Linux)
- SBSIZE
-
所有套接字緩衝區(字節)(NetBSD,FreeBSD)
- SIGPENDING
-
允許的排隊信號數(信號)(GNU/Linux)
- STACK
-
堆棧大小(字節)(SUSv3)
cur_limit
和 max_limit
可以是 :INFINITY
、 "INFINITY"
或 Process::RLIM_INFINITY
,這意味著資源不受限製。它們也可能是 Process::RLIM_SAVED_MAX
、 Process::RLIM_SAVED_CUR
以及相應的符號和字符串。有關詳細信息,請參閱係統 setrlimit(2) 手冊。
以下示例將核心大小的軟限製提高到硬限製,以嘗試使核心轉儲成為可能。
Process.setrlimit(:CORE, Process.getrlimit(:CORE)[1])
相關用法
- Ruby Process.setproctitle用法及代碼示例
- Ruby Process.setpriority用法及代碼示例
- Ruby Process.setsid用法及代碼示例
- Ruby Process.spawn用法及代碼示例
- Ruby Process.groups用法及代碼示例
- Ruby Process.wait2用法及代碼示例
- Ruby Process.getpgrp用法及代碼示例
- Ruby Process.uid用法及代碼示例
- Ruby Process.pid用法及代碼示例
- Ruby Process.detach用法及代碼示例
- Ruby Process.maxgroups用法及代碼示例
- Ruby Process.clock_gettime用法及代碼示例
- Ruby Process.exec用法及代碼示例
- Ruby Process.groups=用法及代碼示例
- Ruby Process.clock_getres用法及代碼示例
- Ruby Process.getsid用法及代碼示例
- Ruby Process.getpriority用法及代碼示例
- Ruby Process.times用法及代碼示例
- Ruby Process.getpgid用法及代碼示例
- Ruby Process.euid用法及代碼示例
- Ruby Process.exit用法及代碼示例
- Ruby Process.kill用法及代碼示例
- Ruby Process.initgroups用法及代碼示例
- Ruby Process.egid用法及代碼示例
- Ruby Process.last_status用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Process.setrlimit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。