2

一部のプログラム/スクリプトのユーザー時間ではなく、CPU 時間を測定し、この時間制限に違反したときにそれを強制終了することが重要です。

それを行う最良の方法は何ですか?

最も明白な解決策の 1 つは、タイム ステップ プロセス ツリーをチェックして、要求されたプログラム/スクリプトが制限に違反していないかどうかを確認することです。これは、perl スクリプト ( pshved/timeout ) で実装されています。私は他のアプローチを探しています

4

1 に答える 1

2

ulimit(1)またはを使用setrlimit(2)して、CPU 時間を制限できます。それ以上の CPU 時間を使用すると、プロセスは自動的に強制終了されます。無視できるソフト制限を指定することもできます。

簡単な例:

#! /bin/bash
(
    ulimit -t 5
    python -c '
a, b = 0, 1
while True:
    a += b
    b += a
'
    echo $?
)
echo "..."
于 2012-06-11T18:01:56.743 に答える