LinuxシステムにおけるrcSファイルの深い分析
4078 ワード
Linuxは極めて柔軟性があり、rcSファイルが具体的にどのような仕事を完成するかはDIY者が決定します.以下、このファイルの分析の主な目的は、各文の意味を明らかにすることです.
答え:権限の基本コード-umask(マスクビット)、規定に従って、フォルダの基本コードrwxrwxrwx(777)、ファイルの基本コードrw-rw-rw-(666)
umaskの値はファイルに設定されていますが、デフォルトでは022です.
trapはshellで信号をキャプチャするコマンドで、その基本形式は3種類あります.
(1)trap "cmd"signal-list
trap signal-listにリストされた信号と同時にcmdコマンドを実行
(2)trap signal-list
信号自体のデフォルトの操作を実行
(3)trap ""signal-list
signal-list指定信号を無視
この文では、カーネルは/devディレクトリの下でデバイスノードを自動的に作成できます.
-p(parents),no error if existing, make parent directories as needed
-n、consoleのレベルを設定します.値が1の場合、emergency(panic)messagesを除いて、すべての情報を印刷することは無視されます.
rcを実行します.localファイルの内容
完全なrcSファイルは次のとおりです.
#! /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