ulimit ทำงานไม่ถูกต้อง


0

ฉันพยายาม จำกัด การใช้หน่วยความจำของกระบวนการโดยใช้ ulimit

ulimit -Sv 100000
ulimit -St 10
fakechroot ./compiledfile

ฉันใช้คำสั่งใน terminal เดียวกัน (ฉันใช้ Ubuntu 16.04) และรหัสแหล่งรวบรวมไฟล์เป็น

#include<stdio.h>
int main()
{
    while(1)
    {
        malloc(110000000);
        pf("allocated : %d\n",i);
    }
    return 0;
}

กระบวนการควรจะสิ้นสุดลงเนื่องจากข้อ จำกัด ของหน่วยความจำ .. แต่มันจะทำงานจนถึงจุดสิ้นสุด timelimit ฉันไม่เข้าใจว่าทำไม ฉันเป็นสามเณรให้อภัยฉันหากคำถามนั้นเป็นเรื่องไร้สาระ…ความช่วยเหลือหรือคำแนะนำใด ๆ ที่ได้รับการชื่นชม .. ขอบคุณ


ไม่แน่ใจ แต่fakechrootสร้างกระบวนการใหม่หรือไม่ ulimitส่งผลกระทบต่อกระบวนการปัจจุบันเท่านั้น คุณสามารถลองเรียกใช้สคริปต์ด้วยulimitและ./compiledfileภายในของคุณfakechroot
Joe P

@ โจ P ฉันได้ลองโดยไม่ต้อง fakechroot (./compiledfile) bt ไม่มีการเปลี่ยนแปลง
mursalin

1
mallocคุณควรตรวจสอบค่าตอบแทนของ มันจะกลับมาNULLเมื่อการจัดสรรล้มเหลวเนื่องจากขีด จำกัด หน่วยความจำหรือเหตุผลอื่น
x22
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.