※ ChatGPTを利用し、要約された質問です(原文:Solaris10での自動起動設定)
Solaris10での自動起動設定
このQ&Aのポイント
Solaris10では、起動時のコマンドの自動実行には従来の方法とSMFが利用されています。
起動時のランレベルや実行されるスクリプトはinittabファイルに記述されますが、具体的な内容は不明です。
起動スクリプトの引数は$1に入ってくる値で、Web情報では「start」「stop」「restart」「status」の4種類とされていますが、他にも存在する可能性があります。
こんにちは。
Solaris10での起動時のコマンドの自動実行について調べています。
Solaris10の場合、SMFというものが導入されているそうですが、従来の方法も使えるとのことなので、まずは従来方式で試しています。
そこで不明点が2つほどあります。
1つは、起動時のランレベルなのですが、調べると、inittabに書いてあるとの情報が多いのですが、実際ところ、inittab内容は以下のようになっていまして、
ap::sysinit:/sbin/autopush -f /etc/iu.ap
sp::sysinit:/sbin/soconfig -f /etc/sock2path
smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog
どうにも起動時のランレベルと実行されるスクリプトがわかりません。
もう1つ、起動スクリプトの引数なのですが、例えばK16apacheを見ると、
case "$1" in
start|startssl|sslstart|start-SSL)
:
:
restart)
:
:
stop)
:
:
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
という感じになっているのですが、この$1に入ってくる値の一覧が見つかりません。
Webの情報では、「start」,「stop」,「restart」,「status」の4種類ということになっていますが、このスクリプトを見ると、他にもあるようです。実際、どう対応しておけばいいのでしょうか?
以上です。なにか情報などお持ちの方いらっしゃいましたら、よろしくお願いします。
お礼
お返事ありがとうございます。 >multi-user-serverが起動していればrunlevel3、multi-userまでであれば2、single-userまでであれば、Sに相当します。 >また互換性を重要視するSunらしく、SMFで管理されているdaemonが起動し終わった後に、rc*.dのスクリプトが読み込まれますので、過去資産の使い回しも可能にはなっています。 はい、runlevelとしては3になるのは確かなようなのですが、その際に実行されるのはrc3.dの中身だけなのか、rc2.dの中身も実行されるのかどうも不明でして。はっきりした資料がみつからず、困っていました。 >ただし従来の方法であるinit scriptを利用するのは特段理由が無ければ利用しないことを強くお勧めします。 はい、それで従来の方法も結局よくわからないし、プロセスが落ちた時に自動で再起動してくれるのは非常に便利ですので、なんとかSMFに対応してみました。こっちもまあ、資料が乏しくて難儀したのではありますが。 実際のところ、一番情報として頼りになったのは /usr/share/lib/xml/dtd/service_bundle.dtd でした。 あと、登録しないと読めないですが、こちらも参考になりました。 http://sdc.sun.co.jp/solaris/solaris10/selfheal/private/sdev_intro.html