コンピュータを停止できるプログラムを正しくサンドボックスする方法

コンピュータを停止できるプログラムを正しくサンドボックスする方法

最近私はプログラムを編集しましたGNU MIX。このプログラムは非常にシンプルで、本質的に無限ループである唯一の命令への無条件のジャンプだけを含みます。

問題は、runnerを使用すると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

私は彼らの最初の例をコピーしています


はい top(1) または ps(1) の使用を開始し、foo --barプロセスが 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)

おすすめ記事