プロセスが停止したときにジャンプアウト

プロセスが停止したときにジャンプアウト

私はすべてのcバイナリを繰り返し.out、その出力をテキストファイルにコピーするループを作成しました(各バイナリの出力はたった1行のハッシュ、1行のプログラム出力です)。これは私のコードです。

for j in {1..10}
do
    ./gcc-$j.out >> gcc-result.txt
done

残念ながら、一部のバイナリには正しい実行を妨げるいくつかの未知の問題があります(停止して次のプログラムを続行できません)。

私はこのCコードを修正しませんが、私のbashに与えられたタイムアウト(例えば10秒)以内に自動的に次のプログラムを実行するようにジャンプし、ここに「0」を書きたいと思いますgcc-result.txt

この問題を解決するためのアイデアがあれば、よろしくお願いします。

ベストアンサー1

timeout コマンドを使用できます。

if timeout 10 ping google.fr > /dev/null
then
    echo "process successful"
else
    echo "process killed"
fi

見せてprocess killed

if timeout 10 ls /usr/bin | wc -l > /dev/null
then
    echo "process successful"
else
    echo "process killed"
fi

process successfulこれに基づいて、次のように各コマンドを実行してif; then; else; fi標準出力を一時ファイルにリダイレクトし、成功した場合はその一時ファイルをターゲットファイルにコピーし、失敗した場合はターゲットファイルを生成できます。

プロセスを終了してPIDが再利用されないようにする方法時間制限がないと役に立ちます。

おすすめ記事