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は設定済みです。
どこが問題でしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
それでしたら、「エラー」ではないように思います。
お使いのスクリプトも正常かと。。
(ただ、スクリプト中のTOMCAT_HOMEは、CATALINA_HOME
かもしれませんし、TOMCATのディレクトリへのnobodyの
アクセス権を与える必要はあります。)
先のrootで起動うんぬんはお忘れください。
そもそも、show_miz様がお使いの起動・終了スクリプトを
/etc/rc.d/init.d/
に書く意味(目的)は、
/etc/rc.d/init.d/tomcat start
と直接手動で実行させるためではありません。
それならば、Tomcatを起動するユーザ(もちろんアクセス権がないといけませんが、)で、/usr/local/tomcat/bin/startup.sh
とすればよいです。
/etc/rc.d/init.d/ に起動スクリプトを書くのは、
OS起動時に「自動的」にTomcatを立ち上げたりする目的で書かれるものです。
OS起動時に、誰もログインしていなくても
デーモンは動きます。
rootはユーザ(人)ですが、デーモンはrootよりも
強いです。なにしろ魔物です。
su で、ユーザにスイッチするときに
パスワードを聞いてくる?というようなことは
ありません。
デーモンが、nobadyに、tomcatを立ち上げさせる
ということですので、結果的には
tomcatはnobodyにより起動される状態になります。
もうすでに行われているかもしれませんが、rootユーザで、
# chmod +x /etc/rc.d/init.d/tomcat
でスクリプトに実行権を与え、
# --chkconfig --add tomcat
として、chkconfigに登録して、
# chkconfig --list | grep tomcat
で、登録されたのを確認してみてください。
ランレベル3や5がonになっていれば、
起動したときに、Tomcatも立ち上がると思います。
LinuxOSを再起動して、
(再起動しても問題なければの話ですが。。。)
Tomcatを手動で立ち上げていないのに、
自動的に立ち上がっていれば成功です。
間違っているかもしれませんが、私の知る限りでは
そんなところです。
この回答への補足
説明不足でした。
おっしゃるとおり、起動時に自動起動をさせることが目的です。
最初に指摘いただいたとおりスクリプトの中からnobodyの記述を削除した場合、起動時に問題なく有効になっています。
ところが、nobodyを付け加えた状態ですと、起動時有効になりません。
tomcatのフォルダについては以下のフォルダをnobodyに変更しています。
・webapps
・work
・logs
・conf
rootでの起動であれば問題ないのですがセキュリティ上あまりよくはないと聞いたので、root以外での起動を目的としています。
よろしくお願いします。
No.3
- 回答日時:
ちょっと調べてみましたら、
nobodyにsuするときには、使用するシェルを指定する
必要があるようです。
方法については、参考URLをご覧ください。
参考URL:http://www.jajakarta.org/kvasir/bbs/technical/17 …
参照URLを確認したところ、現在nobodyでの起動は上手くいかないようです。
参照URLも最後そのように終わっていました。
HTTPDを介しての利用であればroot起動でも問題ないようですので、#2の方法で当面試してみます。
いろいろとありがとうございました。
No.1
- 回答日時:
ユーザが nobady で弱すぎるからでしょうか。
私のほうでは、たとえばstartのところは、
su - -c "/usr/local/tomcat/bin/startup.sh"
として、Tomcat4.1.30が、ちゃんと動いてます。
stop のほうも、同じように shutdown.sh を
たたいてます。
この回答への補足
アドバイスありがとうございます。
私の設定では、ユーザーで
/etc/rc.d/init.d/tomcat start
とすると画面に
su
pass:
と表示されます。
ここでルートのパスワードを入力してもパスワードが違うと怒られます。
そこでsuでルートになってから実行しようとすると今度はこのアカウントには実行権限がないと怒られます。
copymasterさんのやり方だと、おそらく起動はルート権限で行うのですよね。
ルート権限での起動を辞めたいのですが何か手は無いでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- UNIX・Linux デフォルト値のパラメータ展開 1 2022/08/12 17:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
JAの支部?地域の農協のカード...
-
プログラミングの問題です。大...
-
eclipse実行ができない
-
問題作成のWebアプリの作り方を...
-
正規表現について質問です。 カ...
-
list の空は [] ってあわらすのに
-
下記問題の答えが"D"になる意味...
-
jdk17.06のインストーラーが起...
-
自作Androidアプリのデータ引き...
-
Processingでマウスクリックで...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
-
次のhtml・cssでspan内の文字を...
-
Jupyter notebookですわかりま...
-
Eclipse 動的プロジェクトで404...
-
改行含むテキストの表示の仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
マイクラでPythonのプログラミ...
-
配列にnullを代入すると、null...
-
jdk17.06のインストーラーが起...
-
Eclipse 動的プロジェクトで404...
-
list の空は [] ってあわらすのに
-
下記問題の答えが"D"になる意味...
-
JaneStyleのスレッドが見れなく...
-
正規表現について質問です。 カ...
-
eclipseで作ったプログラムを他...
-
改行含むテキストの表示の仕方
-
リレーションエンティティクラ...
-
質問です。 配列が100以上の場...
-
次のhtml・cssでspan内の文字を...
-
キー入力について
-
自作Androidアプリのデータ引き...
-
問題作成のWebアプリの作り方を...
-
eclipse実行ができない
-
変数名とDBカラム名の関係性に...
-
デバッグツールの具体例を教え...
おすすめ情報