たかのです。こんにちは。

  ちょっと教えてください。環境は FreeBSD 6.2-STABLE と ports
current の最新を追いかけているマシンです。

  /etc/rc.d/* は /etc/rc.conf で動作し、/usr/local/etc/rc.d/* は
/etc/rc.conf.local で動作しますが、起動する正確な順番を知りたい
です。

  rc スクリプトが起動する順番は以下のコマンドを打てば良いのは知っ
ていますが、

rcorder -s nostart /etc/rc.d/* /usr/local/etc/rc.d/*

  指定したディレクトリ(man では file となっていますが)を逆に指定
すると、

rcorder -s nostart /usr/local/etc/rc.d/* /etc/rc.d/*

  表示される起動順序が変わってしまいます。と言うことはつまりは、
FILESYSTEMS、NETWORKING、DAEMON、LOGIN など大文字 rc の中での順
番は指定できないと言うことでしょうか。

  REQUIRE と BEFORE の使い方はそこはかとなく知っていますが、例え
ば /usr/local/etc/rc.d/hoge と言う起動スクリプトの中に REQUIRE:
に対して以下のように書いた場合、hoge の起動場所(順序)はそのまま
で、 /etc/rc.d/bgfsck が hoge の前に来てしまいます。
#ヲイヲイ・・。orz。

REQUIRE: LOGIN bgfsck


  まぁ、もっと平たく言うと、/usr/local/etc/rc.d/xdm と言う rc ス
クリプトを書いたのですが、これを「一番最後に起動したい」と思って
います。REQUIRE と BEFORE はどのように書いたら一番最後に起動する
ようになるでしょうか?教えていただけませんでしょうか・・。

#/etc/rc.d/LAST とか欲しいと思う今日このごろ・・。
  後、SystemV の init みたいに番号が欲しいぃっ!!

  ブートメッセージを全て確認した後に X が起動して欲しい。と言う
ことです。まぁ、X だけでなく、他にも一番最後に動作して欲しいもの
は多々あるのですが・・。

  また、スクリプトを rcNG では無い、以前の rc の形式にすると一番
最後に起動することは確認しているのですが、これもちょっと美しくな
いので・・。
#vjed の起動スクリプトなんかも rcNG 風に書き換えたりしています;-)。


  ちなみに /etc/ttys から xdm を起動する方法は知っていますが、そ
れは使う気はありません。あくまで rc から起動したいと思っています。


  最後に僕の書いた /usr/local/etc/rc.d/xdm を添付しておきます。

  宜しくお願いします。

たかの
---
Contact to me.
[メールアドレス保護]     
http://www.running-dog.net/
[メールアドレス保護] 
http://xn--w8j2bze0962a.jp/





#!/bin/sh

# PROVIDE: xdm
# REQUIRE: LOGIN
# KEYWORD: nojail

. /etc/rc.subr

name="xdm"
rcvar="`set_rcvar`"

start_cmd="xdm_start"
stop_cmd="xdm_stop"

xdm_start()
{
    if [ -f /usr/local/bin/915resolution ]; then
        /usr/local/bin/915resolution 58 1280 768 > /dev/null 2>&1
    fi

    if   [ -f /usr/local/bin/kdm ] ; then
        /usr/local/bin/kdm > /dev/null 2>&1
    elif [ -f /usr/local/bin/gdm ] ; then
        /usr/local/bin/gdm
    elif [ -f /usr/local/bin/xdm ] ; then
        /usr/local/bin/${name}
    fi
}

xdm_stop()
{
    if [ -f /var/run/${name}.pid ] ; then
        killall -TERM ${name}
    fi
    if [ -f /var/run/kdm.pid ] ; then
        killall -TERM kdm
    fi
    if [ -f /var/run/gdm.pid ] ; then
        killall -TERM gdm
    fi
}

load_rc_config $name

xdm_enable=${xdm_enable:-"NO"}
xdm_flags=${xdm_flags:=""}

run_rc_command "$1"

メールによる返信