プロが教える店舗&オフィスのセキュリティ対策術

システムの停止時にあるコマンドを実行したいと考えています。
ネットでの情報を検索すると
/etc/rc.d/halt に実行内容を登録しておけば、そのコマンドが実行されるという内容が
ありましたが、実際にやってみると、実行された形跡がありませんでした。

本当にやりたいことは、システム停止時に、「ある常駐プロセスにSIGTERMを発行したい」
ことなのですが、それをコマンドを登録して実行したいと考えています。

もし、/etc/rc.d/haltに登録して実行された方か、
ほかの方法をご存知の方がおりましたら教えてください。

ちなみに、「ある常住プロセスを立ち上げたまま、システムを停止させると、そのプロセスに対して
SIGTERMがOSから発行されている」と思われるのですが、このことを明確に記述されたものが
見当たりませんでした。もし、間違いなく、OSからSIGTERMが発行されるなら、それでもかまいませんが、その裏づけだけは、取っておきたいとおきたいと考えています。
この件で、ご存知の方がおりましたら、教えて頂けませんでしょうか。

OSはRedhat linux です。(正確なバージョンは今不明ですが、5.5だったかと思います)

A 回答 (1件)

Redhatということですので、シャットダウンの時には、/etc/rc0.d/ の下のスクリプトが名前順に実行されます。

Kで始まるものが順次実行された後、S00killall とS01haltが実行され、S01haltの中で稼働中の全プロセスに SIGTERM が送られますので、特に何もしなくて良いです。

常駐プロセスであればサービス化するのがいいのでは?
/etc/rc.d/init.d の下に、他のサービスに習って起動終了を行うスクリプトを書いて、chkconfig --add で管理ファイルに登録し、chkconfig でどういうときに起動するのか設定します。
すると、他のサービスと同じように適宜、開始終了され、/sbin/service コマンドでも開始終了できるようになります。
    • good
    • 0
この回答へのお礼

>S01haltの中で稼働中の全プロセスに SIGTERM が送られますので、特に何もしなくて良いです。
ありがとうございます。この回答が最も、望んでいたものです。
>常駐プロセスであればサービス化するのがいいのでは?
参考にさせていただきます。
現在は、cronで定時に起動し、定時に停止しています。
ありがとうございました。

お礼日時:2012/04/01 14:10

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