• 締切済み
  • 困ってます

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1743
  • ありがとう数6

みんなの回答

  • 回答No.1

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • Apacheを複数のhttpd.confを用いてる場合の再起動

    Apacheを複数のhttpd.confファイルを用いて運用している場合、 個々のhttpd.confを指定してのApache再起動は可能なのでしょうか? 試しに、httpd_1.confとhttpd_2.confを用いて実施してみましたけど、 エラーになってしまいました。 手順を踏まえての詳細を以下に示します。 1./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_1.conf コマンドでApacheを起動。 2./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_2.conf コマンドでApacheを起動。 3.その後Apacheを停止したらプロセスが残ってしまいました。

  • solaris10にて、SMFからのapache+ssl起動

    solaris10にて、apache2+sslの環境を構築しているのですが、SMF経由でapacheを起動させると、sslが有効になりません。 SMFにて使用する、起動用のスクリプト「/lib/svc/method/http-apache2」内のsvcpropというコマンドで、チェックしているところまでは分かったのですが、ここからが分かりません。 どなたか、ご教授願います。 ★SMFからの起動(apache2のみ起動される) # /usr/sbin/svcadm disable svc:/network/http:apache2 # /usr/sbin/svcadm enable svc:/network/http:apache2 # svcs -a |grep apache2 online 11:30:43 svc:/network/http:apache2 # ps -ef|grep http |grep -v grep root 692 1 19 11:30:43 ? 0:06 /usr/local/apache2/bin/httpd -k start webservd 698 692 0 11:30:51 ? 0:00 /usr/local/apache2/bin/httpd -k start ★apache2+SSL手動起動 ・apache無効化 # /usr/sbin/svcadm disable svc:/network/http:apache2 # /usr/local/apache2/bin/apachectl startssl # ps -ef|grep http webservd 675 670 0 11:25:45 ? 0:00 /usr/local/apache2/bin/httpd -k start -DSSL root 670 1 9 11:25:42 ? 0:03 /usr/local/apache2/bin/httpd -k start -DSSL

  • tomcat自動起動がうまくいかない。

    FC3でApache2+tomcat4+mod_jk2で環境を構築しています。 Apache単体、tomcat単体、連繋とも全てうまくいきtomcatの自動起動設定を/etc/rc.d/init.d/tomcat というファイルで作製し、起動テストをおこなったのですが、実行時にエラーがでます。 作製したファイルの内容は以下のとおりです。 ここから #!/bin/sh # # Startup script for the tomcat # # chkconfig: 345 80 15 # description: Tomcat is a Servlet+JSP Engine. # Source function library. . /etc/rc.d/init.d/functions case "$1" in 'start') if [ -f /usr/local/tomcat/bin/startup.sh ]; then echo "Starting the tomcat service " su - nobody -c "export JAVA_HOME=/usr/java/j2sdk1.4.2_07;\export TOMCAT_HOME=/usr/local/tomcat;/usr/local/tomcat/bin/startup.sh" fi ;; 'stop') echo "Stopping the tomcat service." su - nobody -c "export JAVA_HOME=/usr/java/j2sdk1.4.2_07;\export TOMCAT_HOME=/usr/local/tomcat;/usr/local/tomcat/bin/shutdown.sh" ;; 'restart') $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac exit 0 ここまで rootでの/usr/local/tomcat/bin/startup.shを利用した起動は問題無く起動します。 JAVA_HOMEとCATALINA_HOMEは設定済みです。 どこが問題でしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • apache+tomcatの起動手順

    apache+tomcatの起動手順が正しいのか自信がないので 質問します。 1、tomcatを停止 2、apacheを停止 3、tomcatを起動 4、apacheを起動 と認識しています。 実際には、 まず、telnetを起動し、以下のように実行しています。 shを実行した後に停止、起動をやっていますがこれは 問題ないのでしょうか? --------------------------- SunOS 5.6 login: XXXXXXXXX Password: Last login: Fri May 21 15:21:30 from 210.229.239.1 Sun Microsystems Inc. SunOS 5.6 Generic August 1997 % su Password: # sh # cd /usr/local/tomcat/jakarta-tomcat-4.1.29/bin # ./catalina.sh stop Using CATALINA_BASE: /usr/local/tomcat/jakarta-tomcat-4.1.29 Using CATALINA_HOME: /usr/local/tomcat/jakarta-tomcat-4.1.29 Using CATALINA_TMPDIR: /usr/local/tomcat/jakarta-tomcat-4.1.29/temp Using JAVA_HOME: /usr/local/java/j2sdk1.4.2_03 # cd /usr/local/apache/bin # ./apachectl stop ./apachectl stop: httpd stopped # cd /usr/local/tomcat/jakarta-tomcat-4.1.29/bin # ./catalina.sh start Using CATALINA_BASE: /usr/local/tomcat/jakarta-tomcat-4.1.29 Using CATALINA_HOME: /usr/local/tomcat/jakarta-tomcat-4.1.29 Using CATALINA_TMPDIR: /usr/local/tomcat/jakarta-tomcat-4.1.29/temp Using JAVA_HOME: /usr/local/java/j2sdk1.4.2_03 # LD_LIBRARY_PATH=/usr/local/apr/lib # export LD_LIBRARY_PATH # cd /usr/local/apache/bin # ./apachectl start [Fri May 21 15:42:00 2004] [warn] Loaded DSO libexec/mod_webapp.so uses plain Apache 1.3 API, this m odule might crash under EAPI! (please recompile it with -DEAPI) ./apachectl start: httpd started

  • Apache2 のエラーについて

    Apache2 を、/usr/local/apache2/bin/apachectl start あるいは、/usr/local/apache2/bin/apachectl restart で、スタートさせようとすると、以下のエラーになります。 また、/usr/local/apache2/bin/apachectl stop を2回実行しても、 no pid file?といったコメントで、ブラウザからサイトへアクセスできません。 いったい、どうすればいいのでしょうか? /usr/local/apache2/bin/apachectl restart httpd not running, trying to start (48)Address already in use: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs

  • Tomcatの起動に使用するJavaについて

    Tomcatをはじめてインストールする者で恐縮です。 Redhat Linux ES2.1上でTomcat4.1.30とApache1.3.27を連携させようとしています。 Tomcatを起動するには、JDKが必要のようですが、Linuxに標準で入っていたJREでは駄目なのでしょうか。 javaコマンドが普通に使えるのですが。。 試しに /root/.bash_profileに export JAVA_HOME=/opt/IBMjava2-131 export PATH=$PATH:$JAVA_HOME/bin なんて足してみたところstartup.shを実行すると Using CATALINA_BASE /usr/local/jakarta-tomcat-4.1.30 Using CATALINA_HOME /usr/local/jakarta-tomcat-4.1.30 Using CATALINA_TMPDIR /usr/local/jakarta-tomcat-4.1.30/tmp Using JAVA_HOME /opt/IBMjava2-131 と出ました。http://localhost:8080を見たところTOMCATのホームページが見れませんでしたのでやはり駄目でしょうか。JDKをインストールすべき? ご存知の方宜しくお願いします。

  • apacheでphp、exec、system関数でのsudo実行

    FreeBSD 7.0-STABLE でphpスクリプトを作っています。 apacheは2.0.63、phpはphp-4.4.9です。 apacheの設定 ユーザ、グループは、apache phpは safe_mode = offです。 sudoは apache ALL=(ALL) ALL と設定しています。 apacheを手動で起動 /usr/local/apache2/bin/apachectl start して、下記を実行すると <?PHP $cmd = "echo 'password' | sudo -S ls /root"; exec($cmd, $output); print_r($output); ?> 結果、 Array ( [0] => .cshrc [1] => .history [2] => .k5login [3] => .login [4] => .profile [5] => .ssh ) とうまく実行できるのですが apacheを自動起動した場合、 以下の方法をそれぞれ試しましたが # cp /usr/local/apache2/bin/apachectl /usr/local/etc/rc.d/apache.sh # chmod 0755 /usr/local/etc/rc.d/apache.sh より起動 /etc/rc.local # Start Apache /usr/local/apache2/bin/apachectl start より起動 crontab -e @reboot /usr/local/apache2/bin/apachectl start より起動 いずれも 結果は Array ( ) とうまくいきません。 どなたか原因のわかる方、教えていただけないでしょうか? 宜しくお願いいたします。

  • Apache HTTPサーバーバージョン2.0のインストール後

    自作PCに Red Hat Linux release9 (Shrike) をインストールしています。 自作PCでHTMLを公開したいと思っているのですが 上手くできずに困っています。 『/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf』 このコマンドで起動後に、マシンのIPを指定すると ちゃんと 『あなたの予想に反して、このページが見えているでしょうか?』 は表示されるのですが htmlファイルが置いてある所『/home』の直下のディレクトリ(http://192.168.0.70/hoge/test.html)を 指定してもファイルが表示されません。 他に何か設定をしなくてはいけないのでしょうか?

  • Vine Linux 2.15 ではApache2を動かせないのでしょうか。

    古い ノートパソコン(PentiumMMX 233Mhz メモリ64MB)にVine Linux 2.15 をインストールして学習しています。 ---------------------------------------- Vineに付属していたApache1.1は、削除方法が今ひとつ良く分からないのでそのままとし、Apache2(httpd-2.0.53.tar.gz)を解凍しインストールして共存させました。 # /usr/local/apache2/bin/apachectl  start   とすると、 (98)アドレスは既に使用中です:・・・・と出るので、Apache1.1の /etc/httpd/conf/httpd.confファイル中のポート番号を80番から8888番 に変更してrebootしました。そして、Apache2.0を起動してlocalhostにアクセスしましたが、「サーバが見付かりません」とのメッセージが出ます。 # /usr/local/apache2/bin/apachectl  stop   としてみると、 httpd (pid 1029?) not running となり、Apache2が動いていない様子です。 ----------------------------------------- # vi /usr/local/apache2/conf/httpd.conf で開いてみると、Listen80 になっています。しかし、 # netstat -ln | grep 80   とすると、 tcp 0 .00.0.0.0:5680 0.0.0.0:* LISTEN となっており、Port80は見当たりません。 # ps aux | grep http   とすると、FedoraCoreの解説本には、 [・・・・・・/usr/local/apache2/bin/httpd -k start] になると書いてありますが、 root 689 0.0 2.0 3712 1296 ? S 14:33 0 /usr/sbin/http となっています。 ------------------------------------ どこが不具合でApache2が動かないのでしょうか。どのように修正すれば良いでしょうか。 Apache2を起動できないのは、そもそも、パソコンの能力が不足しているからでしょうか? Vine Linux 2.15ではApache2を使えないのでしょうか? 何かお気づきの点があれば教えて頂ければ有難いです。よろしくお願いします。

  • お教えください:TOMCATの起動が上手く行きません。

    始めまして。現在Linuxと格闘中の初心者です。 RedHat7.1にJDK1.3.1とTOMCAT3.2.3をインストールしたのですが、$ startup.shでTOMCATが起動しません。 Net上や書籍でイロイロと調べて、環境変数を変えてみてはいるのですが、動きません。 因みに、ホームディレクトリ下のbashrcは、以下の様に追加しています。 # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi #jdk export JAVA_HOME="/usr/java/jdk1.3.1" export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=$CLASSPATH:/usr/java/jdk1.3.1/lib/tools.jar:. #tomcat export TOMCAT_HOME=/usr/local/tomcat export PATH=$PATH:/usr/local/tomcat/bin 一応、 [UID@localhost UID]# startup.sh を実行した場合、エラーなどは出ておらず、 [UID@localhost UID]# の入力待ち?になりますが、NetscapeでIPを叩いてもTOMCAT_TOPページが出てきません。 JDK・TOMCATとも、インストールは上手く行った筈なのですが・・・。 但し、TOMCATに関連するbootstrap.shとbuild.shが存在しないのが気に掛かっています。 UNIXは初めてなので無謀とは思っていますが、何とかJSP環境を構築したいと考えております。 ご指導の程、宜しくお願いします。