Solaris 資料一覧

SAF(Servise Access Facility)の動作シーケンス

2007/11/27更新

対応バージョン: 8

SAFは以下の順番で動作し、対象となるポートを監視する。

1. initプロセスが/etc/inittabの記述に従ってSAFのマスタプロセスであるsac(service access controler)を起動する。

sc:234:respawn:/usr/lib/saf/sac -t 300

2. sacが/etc/saf/_sactabの記述に従ってポートモニタを起動する。

# VERSION=1

zsmon:ttymon::0:/usr/lib/saf/ttymon     # 

ポートモニタは監視するポートの種類毎に1つ起動される。

ポートにはシリアルポート(ttymonが管理)とネットワークポート(listenが管理)があるが、後者は通常inetdが管理するため上記の_sactabのように事実上ttymonのみが動作する。

# ps -ef|grep saf
root  336   1 ... /usr/lib/saf/sac -t 300
root 8771 336 ... /usr/lib/saf/ttymon

# sacadm -l
PMTAG  PMTYPE  FLGS RCNT STATUS   COMMAND
zsmon  ttymon  -    0    ENABLED  /usr/lib/saf/ttymon # 

3. ttymonが/etc/saf/<ポートモニタタグ>/_pmtabの記述に従って必要なポートを監視する。

# VERSION=1
ttya:u:root:reserved:reserved:reserved:/dev/term/a:I::/usr/bin/login::9600:ldterm,ttcompat:ttya login\: ::tvi925:y:# 
ttyb:u:root:reserved:reserved:reserved:/dev/term/b:I::/usr/bin/login::9600:ldterm,ttcompat:ttyb login\: ::tvi925:y:# 

SunのマシンにはRS-232Cポートが通常2個備わっているので以下のように2つのポートが監視対象となる。

# pmadm -l
PMTAG PMTYPE SVCTAG FLGS ID   <PMSPECIFIC>
zsmon ttymon ttya   u    root /dev/term/a I - /usr/bin/login - 9600 ldterm,ttcompat ttya login:  - tvi925 y  # 
zsmon ttymon ttyb   u    root /dev/term/b I - /usr/bin/login - 9600 ldterm,ttcompat ttyb login:  - tvi925 y  # 

4. /etc/inittabの記述に従ってinitプロセスがコンソール監視用プロセスとしてttymonを起動する。

co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " \
-T sun -d /dev/console -l console -m ldterm,ttcompat

5. 4.によりコンソールからのログインサービスが、inetdによりネットワークからのログインサービスがそれぞれ開始される。

関連資料・記事