Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menetapkan ulimit -n dari Within a Go Program?

Bagaimana untuk Menetapkan ulimit -n dari Within a Go Program?

Linda Hamilton
Lepaskan: 2024-11-03 20:38:02
asal
623 orang telah melayarinya

How to Set ulimit -n from Within a Go Program?

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>
Salin selepas log masuk

Output

$ ./rlimit
{1024 4096}
Rlimit Final {999999 4096}
$ 
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan