O programa de looping está realmente usando a CPU?
-t é para o tempo da CPU, não para a hora do relógio, portanto, se o seu programa não estiver realmente usando nenhum tempo da CPU, ele não será eliminado.
Eu tenho um programa de loop infinito mal codificado que quero executar na linha de comando - mas não para sempre. Eu quero usar o ulimit, então se ele for para sempre, ele será cortado.
Estou tentando:
$> bash -c "ulimit -t 1; java myinfloopprogram"
mas é como se nada estivesse acontecendo. O que está acontecendo, meu comando de linha de comando está errado? O myinfloopprogram é executado muito bem.
Estou executando um terminal e a versão é o Ubuntu 9.10.
Talvez tente algo assim:
java myinfloopprogram &
pid=$!
for i in $(seq 1 60); do
kill -0 $pid >/dev/null || break
sleep 1
done
kill -0 $pid >/dev/null || kill -TERM $pid
ulimit
provavelmente não é o que você precisa. Você precisa de algum tipo de recurso de tempo limite bash. Não há nada embutido no bash, mas existem alguns scripts flutuando para fazer isso. p. ex. link