【问题标题】:Linux bash inline command to execute a program and limit the resourceLinux bash 内联命令执行程序并限制资源
【发布时间】:2011-05-16 01:07:33
【问题描述】:

我做了一个网站,需要执行某种C++程序(程序已经编译好了)。但我想限制程序所需的资源。我要限制的资源是运行时间和已用内存。 我认为运行时间可以用command to execute & sleep time; kill $! 来完成 但是如果进程在睡眠时间之前完成,该命令会导致一些延迟。

我不知道如何通过内联命令限制运行时间(无延迟)和使用的内存。 有什么建议吗?

谢谢之前... 我真的很感谢你的帮助..

【问题讨论】:

    标签: php linux bash runtime memory-limit


    【解决方案1】:

    command ulimit 是你的朋友

    例如(ulimit -t 1; /your/program 2>/some/logfile) | head -c 100k

    会做两件事:

    • 将最大 CPU 限制为一秒
    • 将输出限制为 100k

    【讨论】:

    • 感谢您的解释...如果您不介意,我想再问一次.. ulimit 有效。我喜欢这样,但 head 不工作...'head : 非法字节数 -- 100k'
    • 这根本不限制使用的内存
    • 那么,如何限制使用的内存?
    【解决方案2】:

    查看ulimit 命令。我没用过,但我想它会做你想做的。

    【讨论】:

      【解决方案3】:
      (ulimit -d 1000 -m 1000 -v 1000 -t 1; /your/program 2>/some/logfile) | head -c 100000
      

      这将限制内存大小和时间。您可以使用ulimit -a 了解这些限制的含义或阅读 bash 手册页并搜索 ulimit。

      【讨论】:

      • 这工作.. 感谢您的回答.. 但是,为什么我的日志文件是空的?我试图让时间限制比我的程序的运行时间短,但是,当它停止时,为什么我的日志文件是空的??
      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 2019-06-22
      • 2017-05-03
      • 2017-05-11
      • 1970-01-01
      • 2011-07-06
      • 2018-09-15
      • 2014-07-27
      相关资源
      最近更新 更多