2017-11-19 8 views
0

異なるファームウェアを異なる実行ファイルで更新するシェルスクリプトがあります。 実行可能ファイルのいずれかがハングしていて、シェルに戻っていないかどうかを知る必要があります。 どのような種類のタイムアウトを導入することはできますか?エラーの処理:シェルから実行されたプログラムが返されない

下記のサンプルシェルスクリプト。 updatefwコマンドがハングして戻らない場合の対処方法

#!/bin/sh 

updatefw -c config.cfg 
    if [ $? != 0 ]; then 
     echo "exec1 failed" 
     exit 1 
    fi 
exit 0 
+0

'sh'は通常' bash'ではありません。 – Cyrus

答えて

3

私はGNUコアユーティリティからtimeoutにお勧め:

#!/bin/bash 

timeout 30 updatefw -c config.cfg 
if [[ $? == 124 ]]; then 
    echo "update failed" 
    exit 1 
fi 

timeoutupdatefw終了し、リターンコードは124

である私は、更新が取ることはありませんことを、ここで想定するよりも長い30秒。

関連する問題