Дописал патч.
1. Изменилась схема подсчета используемой памяти. Это дает возможность, сделать лимиты на память более жесткими.
Дефолтное поведение следующее: Если jail достиг лимита по памяти, запрещаются системные вызовы mmap, obreak, fork.
Такой код
не позволит, использовать всю доступную в системе память.
Однако такой код
сможет использовать 1 GB.
Если установить
процесс, который превысил лимит jail-а по памяти будет убит.
Перед, тем как устанавливать эту sysctl, подумайте, при каком использовании памяти, Вы готовы убить процесс в jail и поставьте соответсвующий лимит.
2. Упростил подсчет числа открытых файлов.
Думаю, текущего функционала вполне достаточно.
Пока больше ничего добавлять не буду.
Использование ресурсов считается правильно.
Перед тем как накладывать патч, получите HEAD от 25 мая.
Мир можно не пересобирать, если у Вас уже current.
Нужно пересобрать программу jail, я делаю так.
Код: Выделить всё
[root@book ~/jail-limit]# cd /usr/src/usr.sbin/jail/
[root@book /usr/src/usr.sbin/jail]# cp /usr/src/sys/sys/resource.h /usr/include/sys/resource.h
[root@book /usr/src/usr.sbin/jail]# cp /usr/src/sys/sys/jail.h /usr/include/sys/jail.h
[root@book /usr/src/usr.sbin/jail]# make
Warning: Object directory not changed from original /usr/src/usr.sbin/jail
cc -O2 -pipe -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c jail.c
cc -O2 -pipe -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -o jail jail.o -lutil
[root@book /usr/src/usr.sbin/jail]# cp jail /usr/sbin/jail