LinuxシステムにおけるrcSファイルの深い分析

4078 ワード

Linuxは極めて柔軟性があり、rcSファイルが具体的にどのような仕事を完成するかはDIY者が決定します.以下、このファイルの分析の主な目的は、各文の意味を明らかにすることです.
#! /bin/sh
システムで使用されるshellを指定
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
システムの実行レベルをS(single user mode)に設定します.つまり、単一ユーザーモードで、「root」アカウントのシステムメンテナンスのために1つのコンソール端末しかありません.
umask 022
ファイルには権限の規定があることを知っています.では、ファイルやフォルダを新規作成すると、権限のデフォルトはどのように設定されますか?
答え:権限の基本コード-umask(マスクビット)、規定に従って、フォルダの基本コードrwxrwxrwx(777)、ファイルの基本コードrw-rw-rw-(666)
umaskの値はファイルに設定されていますが、デフォルトでは022です.
export PATH runlevel prevlevel
exportは、1つ以上の変数の値を他のshellに渡すために使用され、いくつかの「グローバル変数」を宣言することに相当します.
trap ":" INT QUIT TSTP	
INT、QUIT、TSTP信号をキャプチャする
trapはshellで信号をキャプチャするコマンドで、その基本形式は3種類あります.
(1)trap "cmd"signal-list
trap signal-listにリストされた信号と同時にcmdコマンドを実行
(2)trap  signal-list
信号自体のデフォルトの操作を実行
(3)trap ""signal-list
signal-list指定信号を無視
/bin/hostname bname
マシン名bnameを設定
/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys
/bin/mount -n -t usbfs none /proc/bus/usb
/bin/mount -t ramfs none /dev
はファイルシステムをマウントし、-tはファイルシステムのタイプを示し、-nは単純なmountであり、/etc/mtabファイルを書くことはない.そうでなければ、/etcが読み取り専用のファイルシステムにある場合、書くとエラーが発生します.
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdevマネージャを呼び出して、動的にプラグインデバイスを作成します.kernelは、デバイスが変動するたびに、上記の文が伝達されたユーザ空間アプリケーション/sbin/mdevを呼び出して対応する情報を処理し、さらにmdev操作/devディレクトリの下のデバイスを呼び出して、追加または削除する.
/sbin/mdev -s

この文では、カーネルは/devディレクトリの下でデバイスノードを自動的に作成できます.
/bin/hotplug
カーネルのhotplug handlerをmdevに設定し、mdevによってカーネルからのメッセージを受信し、Uディスクのマウントなどの対応する応答を行います.
# mounting file system specified in /etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm                                                          
/bin/mount -n -t devpts none /dev/pts -o mode=0622                         
/bin/mount -n -t tmpfs tmpfs /dev/shm                                      
/bin/mount -n -t ramfs none /tmp                                           
/bin/mount -n -t ramfs none /var 
作成して指定したフォルダの下にファイルシステムをマウント
-p(parents),no error if existing, make parent directories as needed
/sbin/hwclock -s -f /dev/rtc
   RTC      
syslogd 
システムまたはアプリケーションによって生成された様々な情報を記録し、ログに情報を書き込む
echo V >/dev/watchdog 
番犬を閉じる
insmod  /lib/modules/s3c2416_gpio.ko
ドライバのロード
dmesg -n 1
は、カーネルのring bufferに情報が表示されます.
-n、consoleのレベルを設定します.値が1の場合、emergency(panic)messagesを除いて、すべての情報を印刷することは無視されます.
exec /usr/etc/rc.local

rcを実行します.localファイルの内容
完全なrcSファイルは次のとおりです.
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

trap ":" INT QUIT TSTP
/bin/hostname bname
/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys
/bin/mount -n -t usbfs none /proc/bus/usb
/bin/mount -t ramfs none /dev

echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
/bin/hotplug

# mounting file system specified in /etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none /dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
/bin/mount -n -t ramfs none /tmp
/bin/mount -n -t ramfs none /var
                                     
mkdir -p /var/empty
mkdir -p /var/log
mkdir -p /var/lock
mkdir -p /var/run
mkdir -p /var/tmp
                                                  
/sbin/hwclock -s -f /dev/rtc
syslogd
                                 
/etc/rc.d/init.d/netd start
echo "                      " > /dev/tty1
echo "Starting networking..." > /dev/tty1
mkdir /mnt/disk
mount -t yaffs2 /dev/mtdblock3 /mnt/disk
echo V >/dev/watchdog
/sbin/ifconfig lo 127.0.0.1
                                           
insmod  /lib/modules/s3c2416_gpio.ko
/bin/sleep 2
dmesg -n 1
exec /usr/etc/rc.local