set ulimit -n
Dalam artikel ini, kita akan membincangkan cara menetapkan ulimit -n dari dalam program golang.
setrlimit(2)
Panggilan sistem setrlimit membenarkan proses untuk menetapkan dan mendapatkan semula had sumber. Hujah bagaimana menentukan sumber untuk dikawal dan hujah old_limit dan new_limit menentukan tindakan yang perlu diambil pada item tersebut.
Untuk tujuan kita, kita perlu menentukan jenis untuk old_limit dan new_limit menggunakan struct Rlimit . Struk ini mengandungi had lembut dan keras semua sumber.
Masalahnya
Dalam coretan kod yang diberikan, anda mendapat ralat menyebut argumen tidak sah semasa menetapkan nilai . Ini kerana kernel tidak membenarkan proses unprivileged untuk menetapkan had keras. Anda perlu menukar nilai Max Rlimit untuk menetapkan had lembut untuk proses.
<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>
Output
$ ./rlimit {1024 4096} Rlimit Final {999999 4096} $
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan ulimit -n dari Within a Go Program?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!