ulimit không hoạt động đúng


0

tôi đang cố gắng hạn chế việc sử dụng bộ nhớ của một quá trình bằng cách sử dụng ulimit

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

Tôi đang chạy lệnh trong cùng một thiết bị đầu cuối (tôi đang sử dụng Ubuntu 16.04) và mã nguồn của tệp được biên dịch là

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

quá trình sẽ bị chấm dứt do giới hạn bộ nhớ..nhưng nó đang chạy cho đến khi kết thúc thời gian kết thúc. Tôi không hiểu tại sao. Tôi là người mới, tha thứ cho tôi nếu câu hỏi thật ngớ ngẩn..những trợ giúp hoặc đề nghị được đánh giá cao..cảm ơn


Không chắc chắn, nhưng có fakechroottạo ra một quy trình mới? ulimitchỉ ảnh hưởng đến quá trình hiện tại. Bạn có thể thử chạy một kịch bản với ulimit./compiledfilebên trong của bạnfakechroot
Joe P

@joe P tôi đã thử mà không có fakechroot (./compiledfile) bt không thay đổi
mursalin

1
Bạn nên kiểm tra giá trị trả lại của malloc. Nó sẽ trở lại NULLkhi cấp phát không thành công do giới hạn bộ nhớ hoặc lý do khác.
x22
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.