なお本文中 Digital UNIX は DU と省略表記している。
boot が開始されると level S (Single user mode) を経て level 2/3 に移行する。 最終的な level は /etc/inittab に定義されている。例えば以下のエントリは level 3 でシステムを起動することを意味している。
is:3:initdefault: |
---|
% who -r . run-level 3 5月 10 17:07 3 0 SSolaris では Single user mode になると、root のパスワードが要求される。従来の ように Super user の password を忘れてしまうと、大抵の場合は手出しできなくなる ので注意が必要。
シャットダウンの一覧 | SVR4 | BSD | init |
システム停止(halt) | -i0 | -h | 0 |
Single user mode へ | -is | なし | s |
Reboot | -i6 | -r | 6 |
halt & 電源断 | -i5 | N/A | 5 |
haltする場合 /usr/sbin/shutdown -g0 -i0 reboot 〃 /usr/ucb/shutdown -r now Single user /sbin/init s
/usr/bin/csh ← dynamically linked /usr/bin/ksh ← 〃 /usr/bin/sh ← 〃 /sbin/sh ← statically linked
/usr/sbin/useradd [-u uid [-o] | -g group | -G group[[,group]...] | -d dir | -s shell | -c comment | -m [-k skel_dir] | -f inactive | -e expire ] loginよく使うオプションを以下に解説する。
usermod -u uid [-o] | -g group | -G group[[,group]...] | -d dir [-m] | -s shell | -c comment | -l new_logname | -f inactive | -e expire login※ Solaris 2.4 では、chfn, chsh が廃止になっており、全て usermod で行なう。 また、これらユーザ情報に関するコマンドは root 権限が必要。
ok probe-scsiまた SCSI-ID はデバイスの種類に応じて予約されており、これ以外を使用すると不 都合が生じる(なんらかのプログラムが動作不良?)場合がある。
0 - 3 : Disk (3 は内蔵) 4, 5 : Tape 6 : CD-ROMデバイス接続が確認されたら、構成変更モード(-r 付き boot コマンド)でシステム をブートする。これはコンフィグレーションがダイナミックに変更できるようになっ たためで、デバイスの追加についてはカーネルの再構築は不要となった。
このとき /dev/, /devices/ が再作成され、関連ドライバーもインストールされる。 Solaris のデバイスファイルは非常に長い名前になっている。
block device) /dev/dsk/c0t3d0s0 char. device) /dev/rdsk/c0t3d0s0この名前にはそれぞれ2桁づつ区切って意味がある。
/devices/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0:a
システム省略値は従来と同様で、以下の通り
スライス | ディレクトリ |
---|---|
s0 | / |
s1 | swap |
s2 | (ディスク全体) |
s3 | 未使用 |
s4 | 未使用 |
s5 | /opt |
s6 | /usr |
s7 | /export/home |
# /usr/sbin/newfs /dev/rdsk/c0t3d0s3newfs により lost+found が作成される。但し Digital UNIX のような mklost+found はないため、誤って削除すると作成に手間がかかる。 DU の mklost+found はスクリプトであるため、これを流用することも出来る。また minfree の値を 0 にする事が出来るようになった。 newfs の(-m)パラメータ でも指定できるが、既に使用を開始しているファイルシステムであれば tunefs を利 用する。
# /usr/sbin/tunefs -m 0 /dev/rdsk/c0t3d0s3マウント
まず手動でマウントし、確認できたら vfstab に記述する。 mount は mount(1m) により行なう。多くのファイルシステムをサポートするため、 ファイルシステム指定オプション(-F)がある。# mount -F ufs /dev/dsk/c0t3d0s3 /opt動作確認ができたら、/etc/vfstab に記述する。vfstab では boot 時に自動的にマ ウントするかどうかの属性があるので、従来と同じようにマウントする場合は、この フィールドを yes にする。vfstab(4) は空白(タブ)で区切られた7つフィールドからなる。以下に先頭から順を 追って解説する。
# mountall -F nfs # umountallまた /etc/vfstab に記述することで、mount コマンドはより簡単に実行できるよう になる。
# mount /opt
# mount / on /dev/dsk/c0t3d0s0 read/write/setuid on Thu Feb 23 13:54:11 1995 /usr on /dev/dsk/c0t3d0s6 read/write/setuid on Thu Feb 23 13:54:11 1995この値は少々わずらわしいのでオプション(-p)の使用を薦める。なお、このオプショ ンは vfstab(4) の形式で出力されるため、手作業で mount したディスクを vfstab に記述する際には便利である。
# mount -p /dev/dsk/c0t3d0s0 - / ufs - no rw,suid /dev/dsk/c0t3d0s6 - /usr ufs - no rw,suid
# devnm /usr/ucb /dev/dsk/c0t3d0s6 /usr/ucb # ufsdump 0uf /dev/rmt/0hn /dev/dsk/c0t3d0s6なおテープ装置のデバイス名は以下のネーミング・ルールとなっている。(詳細は、 st(7) 参照のこと)
/dev/rmt/<通番><密度><動作指定>
# ufsrestore if server:/dev/rmt1h
Sun が提供するソフトウエアは機能毎にソフトウエア・パッケージと呼ばれる単位で 扱う(これは DU のサブセットに対応するものである)。さらに製品として複数のパッ ケージをまとめたクラスタも存在する。
# /usr/sbin/pkgadd -d /cdrom/cdrom0/s0/Solaris_2.5 SUNWman同様にデインストールは pkgrm による。
# /usr/sbin/pkgrm SUNWmanpkgadd, pkgrm とも依存するパッケージをチェックする。これにより他から参照され ているパケージの誤削除の回避、インストールに際し不足したパッケージの表示が可 能となった。
% pkginfo system JSatok7r ATOK7 for Japanese Solaris, (Root) system JSatok7u ATOK7 for Japanese Solaris, (Usr) application SPJAabcc C 3.0.1 Japanese AnswerBook application SPJAabins 3.0.1 Installation Japanese AnswerBook :またパッケージのインストール確認は pkgchk で行なう。
% pkgchk -a JSatok7r # インストール済みの場合なにも表示されない % pkgchk -a HOREHORE 警告:またインストールされたパッケージのインストール時の属性と現在の属性の比較も 可能。と関連するパス名がありません。
% pkgchk -a -p /tmp ERROR: /tmp グループ名は実際には です。 所有者名 は実際には です。
スクリプトは /etc/init.d の下に作成する。おおよそ他のスクリプトに似せて作成 すればよい。唯一の規則は引き数は1つで、start または stop が渡される。 スクリプトではこの引き数に従って、サービスを起動または停止させる。 一般的なパターンは以下のようになる。
# /sbin/sh # コメント : case $1 in 'start') 起動処理 ;; 'stop') 停止処理 ;; esac
最初は K または S で始まる。S は Start の意味で、この Run level に上がってきた ときに start が引き数として渡される。K は Kill の略で、上位の Run level から 下がってきた時に stop が引き数として渡される。<順序番号2桁>スクリプト名[.sh]
% cat /etc/init.d/oracle7 : # # Oracle DB start up # ORACLE_HOME=/Ora/oracle7 export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin export PATH case "$1" in 'start') echo "Starting ORACLE7" >/dev/console su - oracle -c "$ORACLE_HOME/bin/dbstart" ;; 'stop') echo "Stopping ORACLE7" >/dev/console su - oracle -c "$ORACLE_HOME/bin/dbshut" ;; esac % cd /etc/ % ls -li init.d/oracle7 666 -rwxr--r-- 3 root sys 330 3月 27日 18:41 init.d/oracle7* % find /etc/ -inum 666 -print /etc/init.d/oracle7 /etc/rc3.d/S90oracle /etc/rc0.d/K40oracleまた、現在 Solaris 2.4 では以下のディレクトリが標準的に存在する。
/etc/init.d rc スクリプト本体 /etc/rc0.d/ ← Shut down 時に参照 /etc/rcS.d/ ← Single user 移行時に参照(boot/shutdown) /etc/rc1.d/ ← /etc/rc2.d/ ← Multi user. Network 使用なし /etc/rc3.d/ ← 〃 Network 使用
Shared memory for Oracle7 +++++++++++++++++ set shmsys:shminfo_shmmax=33554432 set shmsys:shminfo_shmmni=80 set shmsys:shminfo_shmseg=6 set semsys:seminfo_semmns=200 set semsys:seminfo_semmni=50 set semsys:seminfo_semmsl=20 Shared memory for Oracle7 -----------------
# echo $MANPATH /usr/share/man:/usr/openwin/share/man # catman -wまた各種プロダクトも個別に man page を持つが、これらの whatis もない場合が多 いので、適時作成する事が望ましい。
当該ユーザがいない場合は、