0

期間、メモリ使用量を制限し、C/C++ または Ruby で Linux プログラム実行の権限の低いユーザーとして実行するプログラムによる方法はありますか?

system や `` ではこれができないからです。

sprintf(cmd_str,"/tmp/pro-%d < /tmp/in.txt > /tmp-%d.txt",id,id);
system(cmd_str); // in C

`/tmp/pro-#{id} < /tmp/in.txt > /tmp/out-#{id}.txt` // in Ruby

どちらのステートメントも、そのコマンドを実行者と同じユーザーとして実行し、処理能力とメモリ全体を好きなように使用します。

4

3 に答える 3

1

@falsetru が指摘したように、別のユーザーとして実行するシステム コールは、setrlimitまたはコマンド ラインから、suまたはsudo.

リソースを制限したい場合は、setrlimitシステム コールまたはulimitシェルから使用します。これにより、メモリ使用量などが制限されますが、合計実行時間は制限されません。必要に応じて、プロセスとそれを追跡する必要がありますkill

niceまた、優先順位を設定するために参照することもできます。

于 2014-02-09T13:20:34.680 に答える