Apenas para o registro, OP resolveu seu problema usando bytes, não kilobytes.
Estou com problemas com o Upstart.
Estou tentando iniciar o transmission-daemon (um cliente BitTorrent) com um limite no tamanho máximo de conjunto de residentes ( rss ).
Este é o arquivo /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
Como você pode ver, eu adicionei o limite ( rss deve ser expresso em KiBs se eu não estiver errado) apenas no topo do script.
Quando executo o serviço com sudo service transmission-daemon start
, posso ver com top
que o processo de transmissão única-daemon usa muito mais memória residente do que o limite que defini acima e satura toda a memória disponível.
Por favor, note que isso não funciona mesmo se eu usar limites burros como limit rss 1 2
.
UPDATE: Parece que a unidade correta é Bytes e não KiB ou KBs. Eu tentei definir limit as 268435456 536870912
. Tanto quanto eu posso ver, o processo agora não ultrapassa o limite suave. Infelizmente, ele vai diretamente para SEGFAULT quando se aproxima para alcançar esse limite.
Esta é a saída do 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
Apenas para o registro, OP resolveu seu problema usando bytes, não kilobytes.
Tags services upstart transmission