• 締切済み

Apache・tomcat同時再起動シェルスクリプト作成

見よう見まねで初めて下記のシェルスクリプトを作成しました。 権限をrootに変更する文を追加したいのですが 良く解りません。ご教授よろしくお願い致します。 作成目的は、アプリプログラム反映時、一回のコマンド発行で起動を 行いたく作成しました。(面倒なので) #!/bin/bash # ############################################### # ## アプリサーバ二重化用手動再起動コマンド ### # ############################################### # ############## 環境設定 ####################### export PATH="/usr/local/apache2/bin" export CATALINA_HOME="/usr/local/tomcat" export JAVA_HOME="/usr/local/jdk1.5.0_10" export PATH="/usr/local/jdk1.5.0_10/bin" export TOMCAT_HOME="/usr/local/tomcat" # ############## 変数代入 ####################### # CMD1=`ps -ef | grep java | grep -v grep | wc -l` CMD2=`ps -ef | grep httpd | grep -v grep | wc -l` # ############## 停止コマンド発行 ############### # /usr/local/apache2/bin/apachectl stop if [ "$CMD2" -ge "1" ] ;then killall httpd /usr/local/tomcat/bin/shutdown.sh elif [ "$CMD2" = "0" ] ;then /usr/local/tomcat/bin/shutdown.sh fi # ############## 開始コマンド発行 ############### if [ "$CMD1" -ge "1" ] ;then killall java /usr/local/tomcat/bin/startup.sh elif [ "$CMD1" = "0" ] ;then /usr/local/tomcat/bin/startup.sh fi if [ "$CMD1" -ge "1" ] ;then /usr/local/apache2/bin/apachectl start elif [ "$CMD1" = "0" ] ;then /usr/local/tomcat/bin/startup.sh     /usr/local/apache2/bin/apachectl start fi

みんなの回答

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.1

suコマンドでrootログイン sudoコマンドでroot権限でコマンド実行、です。 なので、 (1) シェルスクリプト実行時に sudo をつける $sudo sh (シェルススクリプト).sh (2) シェルスクリプトの最初で su コマンドを実行する (3) シェルスクリプトの /usr/~/apachectl や /usr/~/shutdown.sh の前にすべてsudoをつける のどれかでたぶんいけます。 su、sudoコマンドの詳細はmanかWeb検索で調べてください。

JACK_TOSHI
質問者

お礼

早々のレス有難う御座います。 sudo に実行権限等登録後、(1) で可能となりました。 yukimicanさん、有難う御座いました。

すると、全ての回答が全文表示されます。