栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从Golang程序中设置ulimit -n?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从Golang程序中设置ulimit -n?

它按预期工作。

setrlimit(2)。

软限制是内核为相应资源强制执行的值。硬限制充当软限制的上限:无特权的进程只能将其软限制设置为0到硬限制之间的值,并且(不可逆地)降低其硬限制。特权进程(在Linux下:具有CAP_SYS_RESOURCE功能的进程)可以对两个限制值进行任意更改。

rlimit.go

package mainimport (    "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)}

输出:

$ uname -aLinux peterSO 3.8.0-26-generic #38-Ubuntu SMP Mon Jun 17 21:43:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux$ go build rlimit.go$ ./rlimit{1024 4096}Error Setting Rlimit  operation not permittedRlimit Final {1024 4096}$ sudo ./rlimit[sudo] password for peterSO:{1024 4096}Rlimit Final {999999 999999}

更新:

我成功参加

rlimit.go
linux/amd64
,你失败了
linux/386
。在Linux
32位发行版中
Getrlimit
以及
Setrlimit
Linux 32位发行版中都有一个执行错误。这些错误已得到修复。

使用Go

default
分支
tip
(包括错误修复),运行以下命令,并使用结果更新您的问题。

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号