set ulimit -n
在本文中,我們將討論如何在 golang 程式中設定 ulimit -n。
setrlimit(2)
setrlimit 系統呼叫允許進程設定和擷取資源限制。參數 how 指定要控制的資源,參數 old_limit 和 new_limit 指定要對該項目所採取的動作。
出於我們的目的,我們需要使用 Rlimit 結構體指定 old_limit 和 new_limit 的類型。此結構包含所有資源的軟限制和硬限制。
問題
在給定的程式碼片段中,您在設定值時收到錯誤訊息,指出參數無效。這是因為核心不允許非特權程序設定硬限制。您需要更改 Rlimit 的最大值來設定進程的軟限制。
<code class="go">import "syscall" func main() { var rLimit syscall.Rlimit // get soft limit if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil { panic(err) } rLimit.Cur = 999999 // soft limit // set soft limit if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil { panic(err) } }</code>
輸出
$ ./rlimit {1024 4096} Rlimit Final {999999 4096} $
以上是如何在 Go 程式中設定 ulimit -n?的詳細內容。更多資訊請關注PHP中文網其他相關文章!