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

Linda Hamilton
Lepaskan: 2024-11-03 20:38:02
asal
454 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!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!