У меня возникают проблемы с Upstart.
Я пытаюсь запустить демона передачи (клиент BitTorrent) с ограничением на максимальный размер резидентного набора (rss).
] Это файл /etc/init/transmission-daemon.conf:
start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]
# give time to send info to trackers
kill timeout 30
limit rss 1024 2048
setuid debian-transmission
setgid debian-transmission
respawn
pre-start script
# stop job from continuing if no config file found for daemon
[ ! -f /etc/default/transmission-daemon ] && { stop; exit 0; }
# source the config file
. /etc/default/transmission-daemon
# stop job from continuing if admin has not enabled service in
# config file.
[ "$ENABLE_DAEMON" != 0 ] || { stop; exit 0; }
end script
script
. /etc/default/transmission-daemon
exec /usr/bin/transmission-daemon -f $OPTIONS
end script
Как вы можете видеть, я добавил ограничение ( передатчик-daemon должен быть выражен в KiBs, если я не ошибаюсь ) просто на вершине скрипта.
Когда я запускаю службу с помощью sudo service transmission-daemon start, я вижу с top, что один процесс передачи-дама использует гораздо более резидентную память, чем предел, который я установил выше, (! d7)
Обратите внимание, что это не работает, даже если я использую тупые ограничения, такие как limit rss 1 2.
UPDATE: Кажется, что правильная единица - это Bytes а не KiB или KBs. Я попытался установить limit as 268435456 536870912. Насколько я вижу, сейчас процесс не проходит по мягкому пределу. К сожалению, он напрямую переходит к SEGFAULT при приближении к достижению этого предела.
Это вывод dmesg
[24165656.190272] transmission-da[3488]: segfault at 0 ip 00007ffad86602f6 sp 00007ffad203ea00 error 6 in transmission-daemon[7ffad863b000+75000]
[24165656.428762] init: transmission-daemon main process (3486) killed by SEGV signal
[24165656.428790] init: transmission-daemon main process ended, respawning