httpdインスタンスが実行状態の場合にのみ再起動するスクリプトを作成したいと思います。ineインスタンスの場合は正常に機能していますが、複数のインスタンスが失敗しています。
以下は私が使用しているスクリプトです:
ctl_var=`find /opt/apache/instances/ -name apachectl | grep -v "\/httpd\/"`
ctl_proc=`ps -ef | grep -i httpd | grep -i " 1 " wc -l`
if [ $ctl_proc <= 0 ];
then echo "httpd is not running";
else $ctl_var -k stop; echo "httpd stopped successfully" ;
sleep 5;
$ctl_var -k start;
sleep 5;
echo "httpd started" ps -ef | grep httpd | grep -i " 1 ";
fi
提案してください...
複数のインスタンスがあるとおっしゃいましたが、スクリプトの実行時にforループが欠落しているようです。ここでは、$ ctl_varで最後に選択されたものだけが再起動します
変更されたスクリプトは次のようになります。必要に応じてスクリプトを微調整します。
ctl_var=`find /opt/apache/instances/ -name apachectl | grep -v "\/httpd\/"`
ctl_proc=`ps -ef | grep -i httpd | grep -i " 1 " wc -l`
for i in `echo $ctl_var`
do
if [ $ctl_proc <= 0 ];
then echo "httpd is not running";
else $i -k stop; echo "httpd stopped successfully" ;
sleep 5;
$i -k start;
sleep 5;
echo "httpd started" ps -ef | grep httpd | grep -i " 1 ";
fi
done
お役に立てれば。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加