Linux系统中rcS文件深入分析

来源:互联网 发布:软件采购制度 编辑:程序博客网 时间:2024/06/10 10:24

转载地址:http://blog.csdn.net/u013686019/article/details/26846571

Linux具有极大的灵活性,rcS文件具体要完成什么工作,完全由DIY者决定。以下针对该文件分析,主要目的是搞清楚各条语句的意思。

[plain] view plain copy
  1. #! /bin/sh  
指定系统使用的shell
[plain] view plain copy
  1. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:  
  2. runlevel=S  
设置系统运行级别为S(single user mode),即单用户模式,只有一个控制台终端,供“root”帐号做系统维护。
[plain] view plain copy
  1. umask 022  
我们知道,文件有权限的规定,那么当你新建一个文件或文件夹,它们的权限默认怎么设定呢?
答案:权限的基本码-umask(屏蔽位),按规定,文件夹的基本码rwxrwxrwx(777),文件的基本码rw-rw-rw-(666)
umask的值在文件中有设定,默认情况下是022
[plain] view plain copy
  1. export PATH runlevel prevlevel  
export用于传递一个或多个变量的值到其他shell,相当于声明了一些“全局变量”
[plain] view plain copy
  1. trap ":" INT QUIT TSTP    
捕捉INT、QUIT、TSTP信号
trap 为shell中捕捉信号的命令,其基本形式有三种:
(1)trap "cmd" signal-list
trap收到与signal-list列出的信号相同时,执行cmd命令
(2)trap  signal-list
执行信号的本身默认的操作
(3)trap " " signal-list
忽视signal-list指定的信号
[plain] view plain copy
  1. /bin/hostname bname  
设置机器名字bname
[plain] view plain copy
  1. /bin/mount -n -t proc none /proc  
  2. /bin/mount -n -t sysfs none /sys  
  3. /bin/mount -n -t usbfs none /proc/bus/usb  
  4. /bin/mount -t ramfs none /dev  
挂载文件系统,-t指明文件系统的类型,-n只是单纯的mount,而不会去写/etc/mtab文件。否则,如果/etc在一个只读的文件系统上,写的话将引发错误。
[plain] view plain copy
  1. echo /sbin/mdev > /proc/sys/kernel/hotplug  
调用mdev管理程序动态的创建插拔设备。kernel在每次设备出现变动时调用上面一句传递进去的用户空间应用程序/sbin/mdev来处理对应的信息,进而mdev操作/dev目录下的设备,进行添加或删除。
[plain] view plain copy
  1. /sbin/mdev -s  

有了这一句,内核就可以在/dev目录下自动创建设备节点。

[plain] view plain copy
  1. /bin/hotplug  
设置内核的hotplug handler为mdev,由mdev接受来自内核的消息并作出相应的回应,比如挂载U盘等。
[plain] view plain copy
  1. # mounting file system specified in /etc/fstab  
  2. mkdir -p /dev/pts  
  3. mkdir -p /dev/shm                                                            
  4. /bin/mount -n -t devpts none /dev/pts -o mode=0622                           
  5. /bin/mount -n -t tmpfs tmpfs /dev/shm                                        
  6. /bin/mount -n -t ramfs none /tmp                                             
  7. /bin/mount -n -t ramfs none /var   
创建然后指定的文件夹下挂载文件系统
-p(parents),no error if existing, make parent directories as needed
[plain] view plain copy
  1. /sbin/hwclock -s -f /dev/rtc  
[plain] view plain copy
  1. 从硬件RTC取得时间    
[plain] view plain copy
  1. syslogd   
记录系统或应用程序产生的各种信息,并把信息写到日志中    
[plain] view plain copy
  1. echo V >/dev/watchdog   
关闭看门狗
[plain] view plain copy
  1. insmod  /lib/modules/s3c2416_gpio.ko  
加载驱动程序
[plain] view plain copy
  1. dmesg -n 1  
显示开机信息,信息在内核的ring buffer中。
-n, 设置信息在console中的级别,值为1情况下将忽略打印所有信息,除了emergency  (panic) messages。
[plain] view plain copy
  1. exec /usr/etc/rc.local  

转去执行rc.local文件中内容


一个完整rcS文件如下:

[plain] view plain copy
  1. #! /bin/sh  
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:  
  3. runlevel=S  
  4. prevlevel=N  
  5. umask 022  
  6. export PATH runlevel prevlevel  
  7.   
  8. trap ":" INT QUIT TSTP  
  9. /bin/hostname bname  
  10. /bin/mount -n -t proc none /proc  
  11. /bin/mount -n -t sysfs none /sys  
  12. /bin/mount -n -t usbfs none /proc/bus/usb  
  13. /bin/mount -t ramfs none /dev  
  14.   
  15. echo /sbin/mdev > /proc/sys/kernel/hotplug  
  16. /sbin/mdev -s  
  17. /bin/hotplug  
  18.   
  19. # mounting file system specified in /etc/fstab  
  20. mkdir -p /dev/pts  
  21. mkdir -p /dev/shm  
  22. /bin/mount -n -t devpts none /dev/pts -o mode=0622  
  23. /bin/mount -n -t tmpfs tmpfs /dev/shm  
  24. /bin/mount -n -t ramfs none /tmp  
  25. /bin/mount -n -t ramfs none /var  
  26.                                        
  27. mkdir -p /var/empty  
  28. mkdir -p /var/log  
  29. mkdir -p /var/lock  
  30. mkdir -p /var/run  
  31. mkdir -p /var/tmp  
  32.                                                     
  33. /sbin/hwclock -s -f /dev/rtc  
  34. syslogd  
  35.                                    
  36. /etc/rc.d/init.d/netd start  
  37. echo "                      " > /dev/tty1  
  38. echo "Starting networking..." > /dev/tty1  
  39. mkdir /mnt/disk  
  40. mount -t yaffs2 /dev/mtdblock3 /mnt/disk  
  41. echo V >/dev/watchdog  
  42. /sbin/ifconfig lo 127.0.0.1  
  43.                                              
  44. insmod  /lib/modules/s3c2416_gpio.ko  
  45. /bin/sleep 2  
  46. dmesg -n 1  
  47. exec /usr/etc/rc.local 
原创粉丝点击