最近我编译了一个程序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)