系统初始化文件的详细解释

系统初始化文件的详细解释


SysInit文件是第一个脚本文件时要执行的Linux初始化文件系统。它主要在每一个操作水平并初始化,包括启动开关检查磁盘,分区,设置主机名、检查和安装文件系统,加载和初始化硬件模块。


脚本的具体执行是由一系列动作在inittab文件作为sysinit。例如,LFS是下面的线:


Si::sysinit: / / RC等。D / D / RC系统初始化初始化。


这意味着,init初始化执行的第一个脚本 / / RC等。D / init. d / RC和SysInit传入参数。一般Linux传入的参数是一个数值,代表运行level.rc将使用参数合成 / / 等的初始化。/ rcsysinit。D目录和执行文件完成服务初始化。以下是 / /初始化文件等。D / rcsysinit D目录。


D,rcsysinit。


我们有s00mountkernfs -> .. / / mountkernfs D初始化。


我们有s02consolelog -> .. / / consolelog D初始化。


我们有s05modules -> .. / /模块的初始化。D


我们有s10udev -> .. / / udev初始化了。


我们有s20swap -> .. / /交换D初始化。


我们有s30checkfs -> .. / / checkfs D初始化。


我们有s40mountfs -> .. / / mountfs D初始化。


我们有s45cleanfs -> .. / / cleanfs D初始化。


我们有s50udev_retry -> .. / / udev_retry D初始化。


我们有s70console -> .. / /控制台的初始化。D


我们有s80localnet -> .. / / localnet D初始化。


/ - s90sysctl -> .. / D / sysctl初始化。


让我们看看在LFS的RC文件写作一看。


# /斌/ SH!


# ------------------------------------


#sysconfig/rc defines only a few variables, and the contents are as follows:


# rc_base = / /钢筋混凝土D等。


# rc_functions = $ { rc_base } / /函数D的初始化。


# network_devices = / / / sysconfig等网络设备


# ----------------------------------------------


/ / / RC sysconfig等


从以上#知道 / / RC等。D / init. d /功能rc_function


#文件只设置一个变量,如路径= / / / usr bin:仓: /sbin: / usr / sbin 。有一些功能


rc_functions $ { }


这集的一些默认的终端#选项。


Stty清醒


这3个信号将不#导致脚本退出


陷阱int退出延迟


#如果$ { 1 }不为空,运行级别$ { 1 },{ 1 }是剧本的第一个参数


{$ { 1 }!=} runlevel = $ { 1 }


如果运行级别是空的#退出。$ { 0 }为脚本的名字


如果{{ }美元级别=};然后


回声用法:$ 0 }> 2


1号出口


FI


#运行水平变化时,当前的运行级别prevlevel变量。


以前的=美元prevlevel } {


#如果以前是空的,以前的设置,


#引导系统时,以前是空的。


{前一个}=}


#对应级别的目录不存在则退出。


# boot_mesg是一个函数,输出字符串到屏幕


如果{!D $ { rc_base } / RC $ { } D };然后运行级别。


boot_mesg$ { rc_base } / RC $ { runlevel }。D不存在。$ {警告}


boot_mesg_flush


1号出口


FI


#停止所有服务在运行级别,从级别


#当你启动系统,以下将不运行,你看不到它


如果{前面的}!=n};然后


我在$(LS - V $ { rc_base } { } / RC美元级别。D/K×2 > / dev /空)





check_script_status


后缀= $ {我# rc_base美元/ RC $ runlevel。D/K { } { } } 0-9 0-9


prev_start = $ rc_base / RC $以前。D / S { } { } $后缀0-9 0-9


sysinit_start = rc_base美元/ rcsysinit。D / S { } { } $后缀0-9 0-9


如果{{ }美元级别!= 0 { } { }美元级别!=6 };然后


如果{!F prev_start } } { $ {!F $ { sysinit_start } };然后


boot_mesg N 警告:{ $ }不能为{警告}


boot_mesg N ,因为它不是执行


boot_mesg N 没有开始在前


boot_mesg N 运行级别($ {一})。


boot_mesg $ {正常}


boot_mesg_flush


继续


FI


FI


{ }停止


error_value = $ { }


如果{$ { error_value }!=0 };然后


print_error_msg


FI


多恩


FI


#打开所有当前运行级别的服务,这部分主要是了解。


我在$(LS - V $ { rc_base } { } / RC美元级别。D / * 2 > / dev /空)





如果{前面的}!=n};然后#这如果是错误的引导时。


后缀= $ {我# rc_base美元/ RC $ runlevel。D / S { } { } } 0-9 0-9


停止rc_base美元/ RC $ runlevel。D/K { } { } $后缀0-9 0-9


prev_start = $ rc_base / RC $以前。D / S { } { } $后缀0-9 0-9


{ F } { } { prev_start美元!-继续


FI


check_script_status #函数判断文件是否是可执行文件。


{案例}在美元级别


0 | 6)#如果runleve是0或6,停止服务的我。


{ }停止


;;


*)


{ }开始


;;


ESAC


error_value = $ { }


如果{$ { error_value }!=0 };然后


print_error_msg


FI


多恩


#美元rc_base / /钢筋混凝土D初始化。