アプリ版:「スタンプのみでお礼する」機能のリリースについて

Solaris9のデーモンの登録について教えてください。

現在、以下の場所にスクリプトファイルが登録させています。
 /etc/rc2.d/S99web-admin

今回、既存の S99web-admin の後に実行させたいスクリプトがあります。

そこで、

/etc/rc2.d/S98web-admin(Webサーバの管理用サービス:既存のものをS99からS98に変更する)
/etc/rc2.d/S99web-server1(Webサーバのサービス)

のように変更・追加しようと思っています。

(質問1)
これは「S98web-admin」が起動されるのを待ってから、「S99web-server1」が起動されるという動作になるのでしょうか?
それとも、「S98web-admin」→「S99web-server1」の順番で起動されるだけで、実行される時間間隔はその時次第(不明)、
「S98web-admin」が起動されたかの確認は行わないということになるのでしょうか?

※条件としては、「S98web-admin」が起動していることを確認してから「S99web-server1」を起動したいと考えております。

(質問2)
上記のサービスをストップさせる場合、rc5(シャットダウン用)とrc6(再起動用)の両方に追加する必要があるということになりますか?
また、ストップのスクリプトを登録しなかった場合、shutdownコマンドなどで、OSを再起動・シャットダウンした際の挙動はどのようになりますか?
killコマンドで停止しても良いようなサービスであれば、わざわざデーモンに停止の登録をする必要はないものなのでしょうか?

もしくは、根本的に考え方など間違っているような感じでしたら、その点もご指摘ください。


以上、よろしくお願いいたします。

A 回答 (2件)

>Webサーバの管理用サービス:既存のものをS99からS98に変更する



もしこれがOS標準のものであれば、番号は変えない方が良いでしょう。個別の環境変更は、分かっていて管理できるのであれば構いませんが、大筋忘れますから。

>/etc/rc2.d/S99web-server1 (Webサーバのサービス)

/etc/rc2.d/S991Web-server1で良いのでは?

>(質問1)
順番に起動されますが、&が付いているなら、前のサービスが起動完了した後に次のサービスが起動されるという保証はありません。必要であれば、次のサービス起動時に前のサービスが完了しているか確認してください。

>(質問2)
SIGKILLで終了しても構わないサービスであれば、rc5への登録は不要です。中途半端に終了しては困るのであれば、/etc/rc2.d/S99web-server1 stopのように停止させましょう。
rc6へは登録しておいた方が良いと思います。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

>>Webサーバの管理用サービス:既存のものをS99からS98に変更する

>もしこれがOS標準のものであれば、番号は変えない方が良いでしょう。個別の環境変更は、分かっていて管理できるのであれば構いませんが、大筋忘れますから。

OS標準のものではありません。
サーバセットアップ時に設定したもののようです。


>>/etc/rc2.d/S99web-server1 (Webサーバのサービス)

>/etc/rc2.d/S991Web-server1で良いのでは?

3桁でもOKなんですね・・ 2桁でないとダメなものだと思っておりました。
「S991Web-server1」のように3桁で設定するようにしたいと思います。


>>(質問1)
>順番に起動されますが、&が付いているなら、前のサービスが起動完了した後に次のサービスが起動されるという保証はありません。必要であれば、次のサービス起動時に前のサービスが完了しているか確認してください。

”&”とはどの部分のことでしょうか?
「次のサービス起動時に前のサービスが完了しているか確認してください。」は
スクリプトでそのようなプログラムを作成するという事ですよね?
簡単に作成できるものですか? 何かサンプルはありますか?

>>(質問2)
>SIGKILLで終了しても構わないサービスであれば、rc5への登録は不要です。中途半端に終了しては困るのであれば、/etc/rc2.d/S99web-server1 stopのように停止させましょう。
>rc6へは登録しておいた方が良いと思います。

承知いたしました。
rc6には追加するように検討したいと思います。

度々申し訳ございませんが、よろしくお願いいたします。

お礼日時:2009/11/06 17:46

>>順番に起動されますが、&が付いているなら



>”&”とはどの部分のことでしょうか?

「/etc/rc2.d/S99web-server1 &」のようにバックグラウンドで動かす場合です。スクリプト言語で書かれたものは大筋、こうです。
C等で書かれていて、SIGHUP、SIGILL等を無視するようにコーディングされていれば親プロセス(この場合はrc2.dを起動したプロセス)が死んでもinitの子になるので問題ありませんが。というより、これこそがデーモンですからね。

>「次のサービス起動時に前のサービスが完了しているか確認してください。」は
>スクリプトでそのようなプログラムを作成するという事ですよね?

はい。

>簡単に作成できるものですか? 何かサンプルはありますか?

ps ax(BSD流なんで動かなければps -efとしてください)をプロセス名でgrepしてプロセスが存在しているか見る(grep自体は無視するようにすることに注意)という方法があります。具体的には、ps ax | grep S98web-admin | grep -v grep の復帰値を見るとかです。

またS98web-adminに手を加えることができるならば、/var/tmpにS98web-admin.lckとかのロックファイルを作らせ、後のサービスでその有無を判断するとか。もちろん、S98web-adminが異常停止する際にはロックファイルを消しておかないと後々面倒です。

IPCで互いに通信させて互いの動作を監視したり、セマフォを使って状態を見たりという方法もありますが、プロセスの有無を見るだけなら過剰なインプリ方法だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!