如何正确沙箱可能导致计算机挂起的程序

如何正确沙箱可能导致计算机挂起的程序

最近我编译了一个程序GNU MIX。该程序相当简单,仅包含无条件跳转到唯一指令,这本质上是一个无限循环。

问题是,当我使用 运行程序时mixvm,系统挂起。这可能是一个单独的问题,我可能只是向 提交错误报告GNU MIX。即使执行以下命令也无济于事

mixvm -r infiniteloop.mix & sleep 5 && killall mixvm

我的问题是,是否有一种简单的方法来执行可能将计算机挂在沙盒环境中的程序,以便它只挂起沙盒?

我正在寻找一种不需要设置虚拟机的方法。我不确定这是否应该被识别为“恶意代码”,因为我相信该程序不会执行任何有关安全问题的操作,例如窃取我的密码或擦除我的磁盘。唯一的问题是它可能会导致计算机无法恢复地挂起(恢复的唯一方法是强制重新启动或可能(我没有尝试)发送 SysRq)。

我在跑步Ubuntu 16.04.4 LTS

我对虚拟化不太熟悉,所以如果我碰巧错过了一些明显的东西,请随时纠正我。

答案1

有一个程序可以从 bash 运行,名为

cpulimit

这是有关它的文档

http://manpages.ubuntu.com/manpages/xenial/man1/cpulimit.1.html

我正在复制他们的第一个例子


示例 假设您已经开始foo --bar使用 top(1) 或 ps(1) 发现该进程占用了您所有的 CPU 时间,您可以

   # cpulimit -e foo -l 50
          limits the CPU usage of the process by acting on the  executable
          program file (note: the argument "--bar" is omitted)

相关内容