- PR -

Linuxの停止時にデーモンの停止が行われません

1
投稿者投稿内容
まめぞう
常連さん
会議室デビュー日: 2007/02/09
投稿数: 21
投稿日時: 2008-10-03 16:27
以下のように設定していますが、Linuxの停止時にデーモンxxxxxの停止が行われません。原因はどこにありそうですか?
OS:RedHat Enterprise Linux ES 4

---デーモンxxxxxの起動/停止スクリプト-------
#! /bin/sh

#chkconfig: 2345 99 01
#description: xxxxx daemon



case $1 in
start)
startの処理
;;
stop)
stopの処理
;;
restart)
restartの処理
;;

*)

esac

exit 0
---------------------------------------

上記のスクリプトファイルを /etc/init.d/に配置して
ファイルの所有者はroot、属性は777にしています。

次の以下のコマンドでランレベル毎に停止/開始をさせようとしています。
chkconfig --add xxxxx
chkconfig --level 2345 xxxxx on


[ メッセージ編集済み 編集者: まめぞう 編集日時 2008-10-03 16:28 ]
うっちー
常連さん
会議室デビュー日: 2004/08/12
投稿数: 32
投稿日時: 2008-10-03 17:25
こんにちは。

記載された情報からいくと,
stop の処理が原因っぽいですけど・・・。

そのシェルスクリプトで stop を引数にした時に
デーモンは停止できますか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-10-03 17:26
rcX.dにリンクがないとか。。
まめぞう
常連さん
会議室デビュー日: 2007/02/09
投稿数: 21
投稿日時: 2008-10-03 17:55
うっちーさんへ

引数を渡して、手動でのsrart/stop/restart は問題なく実行できています。

--追加情報です--
シェルスクリプトの先頭にログを出力するようにしていますが
開始時はちゃんとログ出力されていますが
停止時のログが出力されていません。

停止時にシェルスクリプトが呼ばれていないように見えます。


mioさんへ
rcX.dにもリンクがちゃんと存在してます。
確認してみたら、現状は以下のようになっています。
ランレベル0:K01xxxxx
ランレベル1:K01xxxxx
ランレベル2:S99xxxxx
ランレベル3:S99xxxxx
ランレベル4:S99xxxxx
ランレベル5:S99xxxxx
ランレベル6:K01xxxxx

うっちー
常連さん
会議室デビュー日: 2004/08/12
投稿数: 32
投稿日時: 2008-10-03 18:14
起動時に

/var/lock/subsys/

ディレクトリ配下にデーモンと同一の名前を touch するようスクリプトを変更して,
再度,shutdown したら停止処理するようになりませんか?
# postgresql がデーモンなら postgresql というファイルを touch
まめぞう
常連さん
会議室デビュー日: 2007/02/09
投稿数: 21
投稿日時: 2008-10-03 18:45
うっちーさんへ
あちがとうございます。助かりました。
無事解決できました。

対処としては、
起動時に/var/lock/subsys/配下に
デーモンと同じ名前のファイルをtouchし

停止時に/var/lock/subsys/xxxxxを
削除するようにしました。
1

スキルアップ/キャリアアップ(JOB@IT)