Linux ubuntu下的ulimit-t

Linux ubuntu下的ulimit-t,linux,ubuntu,ulimit,Linux,Ubuntu,Ulimit,我正在运行UbuntuLinux(2.6.28-11-generic#42 UbuntuSMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux),命令“ulimit-t”似乎无法正常工作。我跑: ulimit-t1;我的计划 其中“myprogram”是一个无止境的循环。我期望程序在1秒后被中断,但它没有停止。我在LinuxFedora安装上尝试了同样的方法,效果如预期 是否需要设置一些配置才能正常工作 --tsf正如所指出的,问题是由于一个错误。 我留下

我正在运行UbuntuLinux(2.6.28-11-generic#42 UbuntuSMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux),命令“ulimit-t”似乎无法正常工作。我跑:

ulimit-t1;我的计划

其中“myprogram”是一个无止境的循环。我期望程序在1秒后被中断,但它没有停止。我在LinuxFedora安装上尝试了同样的方法,效果如预期

是否需要设置一些配置才能正常工作

--tsf

正如所指出的,问题是由于一个错误。 我留下我最初的答案,因为我认为它无论如何都会有帮助

从ulimit主页

-t cpu时间的最大值
以秒为单位。

对于ulimit来说,重要的只是CPU时间。 尝试按以下方式启动您的程序:

time myprogram
这将显示它实际使用了多少CPU时间

我怀疑您的无休止循环包含
sleep()
睡眠时间对进程的CPU时间没有影响

这会在一秒钟后被杀死:

me@host:~$ bash
me@host:~$ ulimit -t 1; for (( i=1; 1; i++ )); do a=1; done
Killed
这似乎会永远运行(但当然不会):

像这样测量CPU时间

me@host:~$  time for (( i=1; i<5; i++ )); do sleep 1; done
…仅使用12毫秒的CPU时间

我在ubuntu Jaunty Jackalope上试过(9.04)


我不认为这是我的错。你怎么会这么想?是的,也许你是对的,我只是反应太快了。我的节目里没有任何睡眠。请注意,它在Fedora下正常工作,因此在我的Ubuntu上看起来像是一个配置问题!谢谢,我在回答的顶部加上了你的提示。我认为如果人们先看到内核bug会更好。
me@host:~$  time for (( i=1; i<5; i++ )); do sleep 1; done
real        0m4.008s
user        0m0.000s
sys         0m0.012s
Linux host 2.6.28-11-generic #42-Ubuntu SMP 
Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux