set ulimit -n
이 글에서는 golang 프로그램 내에서 ulimit -n을 설정하는 방법에 대해 설명합니다.
setrlimit(2)
setrlimit 시스템 호출을 사용하면 프로세스가 리소스 제한을 설정하고 검색할 수 있습니다. 제어할 리소스를 지정하는 방법 인수와 old_limit 및 new_limit 인수는 해당 항목에 대해 수행할 작업을 지정합니다.
우리의 목적을 위해서는 Rlimit 구조체를 사용하여 old_limit 및 new_limit 모두에 대한 유형을 지정해야 합니다. . 이 구조체에는 모든 리소스의 소프트 및 하드 제한이 포함되어 있습니다.
문제
주어진 코드 조각에서 값을 설정하는 동안 잘못된 인수라는 오류가 발생했습니다. . 이는 커널이 권한이 없는 프로세스가 하드 제한을 설정하는 것을 허용하지 않기 때문입니다. 프로세스에 대한 소프트 제한을 설정하려면 Rlimit의 Max 값을 변경해야 합니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!