0
#!/bin/bash
# Apache Process Monitor
# Restart Apache Web Server When It Goes Down
# -------------------------------------------------------------------------
# Copyright (c) 2003 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# RHEL / CentOS / Fedora Linux restart command
RESTART="/sbin/service httpd restart" 
# uncomment if you are using Debian / Ubuntu Linux
#RESTART="/etc/init.d/apache2 restart" 
#path to pgrep command
PGREP="pgrep"
# Httpd daemon name,
# Under RHEL/CentOS/Fedora it is httpd
# Under Debian 4.x it is apache2
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
fi
exit

これは私のスクリプトです。実行すると、次のようになります:コマンドが見つかりません/apache_start.sh:12行目::コマンドが見つかりません/apache_start.sh:22行目:pgrep /usr/local/apache/bin/apache_start.sh:29行目:構文エラー:予期しないファイルの終了

私が犯した間違い。誰かが私に答えてくれたらとてもうれしいです。

4

1 に答える 1

0

おい、私はあなたのスクリプトを実行しましたが、$PGREP ${HTTPD} の部分を除いて正常に動作します。pid を取得したい場合は、「pidof」コマンドを使用しないでください。if ステートメントで戻り値をテストしていると思いますhttpdコマンドではなく、grepの値です(不明)。
とにかく、このスクリプトをワード文書またはエディターで編集しましたか?これにより、コードに目に見えない文字が追加される可能性があることがわかっています。
デバッグするには、最初のエラーが発生したコードの残りの部分をコメントアウトし、その特定のエラーの解決策を見つけることをお勧めします。

于 2013-08-16T04:50:38.003 に答える