"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يؤدي تعيين `ulimit -n` من برنامج Go على توزيعات Linux 32 بت إلى خطأ \"وسيطة غير صالحة\"؟

لماذا يؤدي تعيين `ulimit -n` من برنامج Go على توزيعات Linux 32 بت إلى خطأ \"وسيطة غير صالحة\"؟

تم النشر بتاريخ 2024-11-06
تصفح:868

Why does setting `ulimit -n` from a Go program on Linux 32-bit distributions result in an \

كيفية تعيين ulimit -n من برنامج Go؟

مشكلة

حاول مستخدم تعيين ulimit -n من داخل برنامج Go إلى قم بتقييده داخل البرنامج وليس عالميًا، باستخدام استدعاءات النظام setrlimit وgetrlimit. ومع ذلك، حدث خطأ أثناء محاولة تعيين القيمة، موضحًا "وسيطة غير صالحة."

الحل

تم اكتشاف أن المشكلة كانت بسبب أخطاء Go في Getrlimit وSetrlimit لنظام التشغيل Linux 32- توزيعات البت تم إصلاح هذه الأخطاء منذ ذلك الحين، ويمكن اتخاذ الخطوات التالية لحل المشكلة:

  1. التحديث إلى تلميح فرع Go الافتراضي. سيتضمن ذلك إصلاحات الأخطاء.
  2. إعادة بناء البرنامج باستخدام إصدار Go المحدث.
النتائج

بعد التحديث إلى تلميح فرع Go الافتراضي وإعادة بناء البرنامج، لوحظ السلوك المتوقع:

$ ./rlimit {1024 4096} خطأ في إعداد عملية Rlimit غير مسموح بها نهائي Rlimit {1024 4096} $ سودو ./rlimit [سودو] كلمة المرور لـ peterSO: {1024 4096} Rlimit Final {999999 999999}
$ ./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}
ملاحظة:

بالنسبة لتوزيعات Linux/amd64، لم تتم مواجهة المشكلة. كانت المشكلة خاصة بتوزيعات Linux 32 بت.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3