Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menetapkan ulimit -n daripada program Golang tanpa menjejaskan had global?

Bagaimana untuk menetapkan ulimit -n daripada program Golang tanpa menjejaskan had global?

Mary-Kate Olsen
Lepaskan: 2024-11-05 08:38:02
asal
722 orang telah melayarinya

How to set ulimit -n from a Golang program without impacting the global limit?

Menetapkan ulimit -n daripada program Golang

S: Bagaimanakah saya boleh menetapkan ulimit -n daripada program Golang untuk menyekatnya dalam program dan bukannya secara global?

J:
Untuk menetapkan ulimit -n daripada program Golang, anda boleh menggunakan langkah berikut:

<code class="go">package main

import (
    "fmt"
    "syscall"
)

func main() {
    var rLimit syscall.Rlimit
    err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Getting Rlimit ", err)
    }
    fmt.Println(rLimit)
    rLimit.Max = 999999
    rLimit.Cur = 999999
    err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Setting Rlimit ", err)
    }
    err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Getting Rlimit ", err)
    }
    fmt.Println("Rlimit Final", rLimit)
}</code>
Salin selepas log masuk

Nota: Anda mungkin mendapat ralat "hujah tidak sah" semasa menetapkan nilai. Ini kerana anda perlu menjalankan program dengan keistimewaan yang tinggi.

$ uname -a
Linux peterSO 3.8.0-26-generic #38-Ubuntu SMP Mon Jun 17 21:46:08 UTC 2013 i686 i686 i686 GNU/Linux
$ go version
go version devel +ba52f6399462 Thu Jul 25 09:56:06 2013 -0400 linux/386
$ ulimit -Sn
1024
$ ulimit -Hn
4096
$ go build rlimit.go
$ ./rlimit
{1024 4096}
Error Setting Rlimit  operation not permitted
Rlimit Final {1024 4096}
$ sudo ./rlimit
[sudo] password for peterSO:
{1024 4096}
Rlimit Final {999999 999999}
$
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menetapkan ulimit -n daripada program Golang tanpa menjejaskan had global?. 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