rlb.usa Asked: 2010-01-26 13:28:45 +0800 CST2010-01-26 13:28:45 +0800 CST 2010-01-26 13:28:45 +0800 CST 你能帮我解决这个简单的'ulimit'吗? 772 我有一个编码错误的无限循环程序,我想在命令行上运行它——但不是永远。我想使用 ulimit 所以如果它永远循环,它就会被切断。 我正在努力: $> bash -c "ulimit -t 1; java myinfloopprogram" 但这就像什么都没有发生。怎么回事,我的命令行命令错了吗?myinfloopprogram 运行得很好。 我正在运行一个终端,版本是 Ubuntu 9.10 。 ubuntu bash shell ulimit 3 个回答 Voted Best Answer James 2010-01-26T13:49:34+08:002010-01-26T13:49:34+08:00 循环程序实际上是否使用 CPU? -t 用于 CPU 时间,而不是挂钟时间,因此如果您的程序实际上没有使用任何 CPU 时间,它不会被杀死。 Peter Eisentraut 2010-01-26T14:26:04+08:002010-01-26T14:26:04+08:00 也许尝试这样的事情: 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 Amandasaurus 2010-01-27T02:35:09+08:002010-01-27T02:35:09+08:00 ulimit可能不是你需要的。您需要某种 bash 超时功能。bash 中没有内置任何内容,但是有一些脚本可以执行此操作。例如https://stackoverflow.com/questions/687948/timeout-a-command-in-bash-without-unnecessary-delay
循环程序实际上是否使用 CPU?
-t 用于 CPU 时间,而不是挂钟时间,因此如果您的程序实际上没有使用任何 CPU 时间,它不会被杀死。
也许尝试这样的事情:
ulimit
可能不是你需要的。您需要某种 bash 超时功能。bash 中没有内置任何内容,但是有一些脚本可以执行此操作。例如https://stackoverflow.com/questions/687948/timeout-a-command-in-bash-without-unnecessary-delay