Linux系统中rcS文件深入分析
Linux具有极大的灵活性,rcS文件具体要完成什么工作,完全由DIY者决定。以下针对该文件分析,主要目的是搞清楚各条语句的意思。
- #! /bin/sh
- PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
- runlevel=S
- umask 022
答案:权限的基本码-umask(屏蔽位),按规定,文件夹的基本码rwxrwxrwx(777),文件的基本码rw-rw-rw-(666)
umask的值在文件中有设定,默认情况下是022
- export PATH runlevel prevlevel
- trap ":" INT QUIT TSTP
trap 为shell中捕捉信号的命令,其基本形式有三种:
(1)trap "cmd" signal-list
trap收到与signal-list列出的信号相同时,执行cmd命令
(2)trap signal-list
执行信号的本身默认的操作
(3)trap " " signal-list
忽视signal-list指定的信号
- /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
有了这一句,内核就可以在/dev目录下自动创建设备节点。
- /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
-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
-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
Linux系统中rcS文件深入分析