س: كيف يمكنني ضبط ulimit -n من برنامج Golang لتقييده داخل
ج: لتعيين ulimit -n من برنامج Golang، يمكنك استخدام الخطوات التالية:
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)
}
ملاحظة: قد تحصل على خطأ "وسيطة غير صالحة" عند تعيين القيمة. وذلك لأنك تحتاج إلى تشغيل البرنامج بامتيازات مرتفعة.
$ uname -a Linux peterSO 3.8.0-26-generic #38-Ubuntu SMP الإثنين 17 يونيو 21:46:08 UTC 2013 i686 i686 i686 GNU/Linux $ اذهب النسخة go version devel ba52f6399462 الخميس 25 يوليو 09:56:06 2013 -0400 linux/386 $ أوليميت -Sn 1024 $ ulimit -Hn 4096 $ اذهب لبناء rlimit.go $ ./rlimit {1024 4096} خطأ في إعداد عملية Rlimit غير مسموح بها نهائي Rlimit {1024 4096} $ سودو ./rlimit [سودو] كلمة المرور لـ peterSO: {1024 4096} الحد النهائي {999999 999999} $تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3