سؤال

لدي البرنامج النصي التالي:

cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript

الذي يعمل بسلاسة محليا، هو دائما موافق. ولكن إذا حاولت تشغيله عن بعد من خلال SSH:

scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"

حصلت على الخطأ:

ulimit: open files: cannot modify limit: Operation not permitted

لقد جربت أيضا الأمر التالي:

ssh user@host "ulimit -n 8192"

نفس الخطأ.

يبدو أن تنفيذ الأمر SSH بعيد SSH يطبق حد ثابت 1024 على حد NOFILE، لكن لا يمكنني معرفة كيفية تعديل هذه القيمة الافتراضية. حاولت تعديل /etc/Security/limits.conf وإعادة تشغيل SSHD، لا يزال الخطأ نفسه.

هل كانت مفيدة؟

المحلول 2

اكتشف Fiannly الجواب: أضف ما يلي / إلخ / initscript

ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"

نصائح أخرى

بدلا من استخدام الحل /etc/initscript (ولا تجعل الخطأ المطبعي في هذا الملف .. :)، إذا كنت تريد فقط sshd لتكريم الإعدادات التي قدمتها في /etc/security/limits.conf, ، يجب عليك التأكد من أن لديك UsePAM yes في /etc/ssh/sshd_config, ، و /etc/pam.d/sshd قوائم session required pam_limits.so (أو يتضمن خلاف ذلك ملف آخر يفعل ذلك).

يجب أن يكون كل شيء هناك.

في الإصدارات القديمة OD ODSSHSH (<3.6 شيء ما) كانت هناك أيضا مشكلة في الاستخدام المسدود الذي يمنع الحدود التي يتم تكريمها، ولكن تم إصلاحه في إصدارات أحدث.

ulimit يتطلب امتيازات Superuser لتشغيل.

أود أن أقترح عليك أن تطلب من مسؤول الخادم تعديل هذه القيمة لك على الخادم الذي تحاول تشغيل البرنامج النصي.

هو / هي يمكن أن تفعل ذلك عن طريق تعديل /etc/secutiry/limits.conf على لينكس. هنا مثال قد يساعد:

*               soft    nofile          8192
*               hard    nofile          8192

بعد ذلك، لا تحتاج إلى إعادة تشغيل SSHD. مجرد تسجيل الخروج وتسجيل الدخول مرة أخرى.

أود أن أقترح عليك أن تسأل نفس السؤال في ServerFault. رغم ذلك. سوف تحصل على إجابات أفضل من جانب الخادم هناك.

تحقق من البرامج النصية للبدء (/etc/profile, ~/.??*) للحصول على دعوة إلى ulimit. وبعد IIRC، بمجرد فرض الحد، لا يمكن اتساعه بعد الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top