几个小时前我在 Stack Overflow 上发布了一个有关此问题的问题:
据我所知,要限制资源我可以使用 ulimit 命令。
但是,问题是当我将 CPU 时间限制设置为 1 秒,然后我想要执行另一个 CPU 限制为 2 秒的程序时,ulimit 命令会返回如下错误:
bash: ulimit: CPU time: cannot modify limit: Operation not permitted
我的程序绝对在1秒内终止了。
那么,如何才能使第二个程序运行时 CPU 时间限制为 2 秒?
答案1
经过几次仔细阅读 ulimit 后,我终于找到了答案...我发现了我的错误...我对软限制和硬限制有错误的认识,我需要做的是使用软限制作为命令..我用和ulimit -St 1; ./a ouput.out
第二个完成了它ulimit -St 2; ./a ouput.out
我很抱歉我的错了...希望这篇文章能够对所有需要它的人有所帮助...非常感谢...
答案2
通常,为进程赋予优先级比限制其资源更好。如果机器空闲,为什么不让进程全速运行呢?
您可以使用nice
它来运行优先级较低或较高的命令。如果您希望以较高优先级运行,则只需要超级用户访问权限。
$ nice [-n increment] ./a <input.in> output.out
您还可以使用它renice
来更改正在运行的进程的优先级。
nice
和都renice
可以接收一个可选参数 -n,参数为整数(-20 <= n <= 20)
。正整数使得进程更美好并使用更少的资源,而负整数将使其更少好的. 如果没有给出参数则10
假定。