dポイントプレゼントキャンペーン実施中!

Linuxにおいて、OSをshutdownまたはrebootすると
rcスクリプトが動作したりプロセスがSIGTERMを受信したりしますが、
shutdownコマンド投入から電源断までに、
プロセスがどのような順番、方法で停止するか教えてください。

(1)rcスクリプトによる停止が先か、SIGTERM受信による停止が先か
(2)SIGTERMは全プロセスに対して送られるのか
(3)rcスクリプト、SIGTERM以外にもプロセスが停止する契機・方法があるか

よろしくお願いいたします。

A 回答 (2件)

shutdown,reboot,halt などを実行すると


/etc/inittab の該当部分のランレベルのスクリプトが動くはずです。
詳しくはman shutdown や、man inittab を参照してください。
============= /etc/inittab より抜粋 =========================
# ランレベルごとの処理(各ランレベル用のrcスクリプトを実行し、その終了を待つ)
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
=================================================
なので、
reboot = runlevel 6 = /etc/rc.d/rc 6
halt = runlevel 0 = /etc/rc.d/rc 0
が動くと思います。
なので、どういう順番で停止されるのかを知るには
この部分のスクリプトを追っていけばよいかと思います。

うちのSlackwareでは
rcスクリプトで停止→killall5 -15→killall5 -9
としていますが、ディストリビューションごとに細かい部分は異なると思います。
    • good
    • 0
この回答へのお礼

分かりやすい説明、ありがとうございました。

お礼日時:2009/12/06 19:00

ディストリビューションによって異なりますが、Red Hat など RPM 系だと


rc6.d 配下が走って順番にデーモンごとに最適なシャットダウン方法で落ちます。

最近の ubuntu はわかりません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/06 19:00

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