`
bd2007
  • 浏览: 395831 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

linux开机启动脚本的顺序

阅读更多

   




下开机自动启动脚本所涉及的知识和方法、如下:</span>


<span>、相关基础知识点</span>


1</span>
<span>)<span lang="EN-US">redhat</span>
的启动方式和执行次序是: </span>


</span>
<span>加载内核 </span>


</span>
<span>执行<span lang="EN-US">init</span>
程序 </span>


/etc/rc.d/rc.sysinit # </span>
<span>由<span lang="EN-US">init</span>
执行的第一个脚本 </span>


/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL</span>
<span>为缺省的运行模式 </span>


/etc/rc.d/rc.local<span>???? </span>
#</span>
<span>相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)</span>


/sbin/mingetty # </span>
<span>等待用户登录 </span>


</span>


</span>
<span>在<span lang="EN-US">Redhat</span>
中,<span lang="EN-US">/etc/rc.d/rc.sysinit</span>
主要做在各个运行模式中相同的初始化工作,包括:
</span>


</span>
<span>调入<span lang="EN-US">keymap</span>
以及系统字体 </span>


</span>
<span>启动<span lang="EN-US">swapping </span>
</span>


</span>
<span>设置主机名 </span>


</span>
<span>设置<span lang="EN-US">NIS</span>
域名 </span>


</span>
<span>检查(<span lang="EN-US">fsck</span>
)并<span lang="EN-US">mount</span>
文件系统 </span>


</span>
<span>打开<span lang="EN-US">quota </span>
</span>


</span>
<span>装载声卡模块
</span>


</span>
<span>设置系统时钟
</span>


</span>
<span>等等。 </span>


/etc/rc.d/rc</span>
<span>则根据其参数指定的运行模式<span lang="EN-US">(</span>
运行级别,你在<span lang="EN-US">inittab</span>
文件中可以设置<span lang="EN-US">)</span>
来执行相应目录下的脚本。凡是以<span lang="EN-US">Kxx</span>
开头的 </span>


</span>
<span>,都以<span lang="EN-US">stop</span>
为参数来调用;凡是以<span lang="EN-US">Sxx</span>
开头的,都以<span lang="EN-US">start</span>
为参数来调用。调用的顺序按<span lang="EN-US">xx </span>
</span>


</span>
<span>从小到大来执行。<span lang="EN-US">(</span>
其中<span lang="EN-US">xx</span>
是数字、表示的是启动顺序<span lang="EN-US">)</span>
例如,假设缺省的运行模式是<span lang="EN-US">3</span>
,<span lang="EN-US">/etc/rc.d/rc</span>
就会按上述方式调用 </span>


/etc/rc.d/rc3.d/</span>
<span>下的脚本。 </span>


</span>
<span>值得一提的是,<span lang="EN-US">Redhat</span>
中的运行模式<span lang="EN-US">2</span>
、<span lang="EN-US">3</span>
、<span lang="EN-US">5</span>
都把<span lang="EN-US">/etc/rc.d/rc.local</span>
做为初始化脚本中 </span>


</span>
<span>的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
</span>


</span>


init</span>
<span>在等待<span lang="EN-US">/etc/rc.d/rc</span>
执行完毕之后(因为在<span lang="EN-US">/etc/inittab</span>
中<span lang="EN-US">/etc/rc.d/rc</span>
的 </span>


action</span>
<span>是<span lang="EN-US">wait</span>
),将在指定的各个虚拟终端上运行<span lang="EN-US">/sbin/mingetty</span>
,等待用户的登录。
</span>


</span>
<span>至此,<span lang="EN-US">LINUX</span>
的启动结束。</span>


2</span>
<span>)<span lang="EN-US">init</span>
运行级别及指令</span>


</span>
<span>一、什么是<span lang="EN-US">INIT: </span>
</span>


是<span lang="EN-US">Linux</span>
系统操作中不可缺少的程序之一。 </span>


进程,它是一个由内核启动的用户级进程。
</span>


的方式,完成引导进程。所以<span lang="EN-US">,init</span>
始终是第一个进程(其进程编号始终为<span lang="EN-US">1</span>
)。 </span>


的几个地方查找它,它的正确位置(对<span lang="EN-US">Linux</span>
系统来说)是<span lang="EN-US">/sbin/init</span>
。如果内核找不到<span lang="EN-US">init</span>
,它就会试着运行<span lang="EN-US">/bin/sh</span>
,如果运行失败,系统的启动也会失败。
</span>






到<span lang="EN-US">6 </span>
,具有不同的功能。 </span>




停机(千万不能把<span lang="EN-US">initdefault </span>
设置为<span lang="EN-US">0 </span>
) </span>


单用户模式<span lang="EN-US"><span>????????????????????????????????????
</span>
# s<span>?? </span>
init s = init 1</span>
</span>


多用户,没有<span lang="EN-US"> NFS </span>
</span>


完全多用户模式<span lang="EN-US">(</span>
标准的运行级<span lang="EN-US">) </span>
</span>


没有用到 </span>


多用户图形模式(<span lang="EN-US">xwindow) </span>
</span>


重新启动 (千万不要把<span lang="EN-US">initdefault </span>
设置为<span lang="EN-US">6 </span>
) </span>




文件里指定。这个文件是<span lang="EN-US">init </span>
程序寻找的主要文件,最先运行的服务是放在<span lang="EN-US">/etc/rc.d</span>
</span>


发行版本中,启动脚本都是位于<span lang="EN-US"> /etc/rc.d/init.d</span>
中的。这些脚本被用<span lang="EN-US">ln </span>
命令连接到</span>


<span>目录。<span lang="EN-US">(</span>
这里的<span lang="EN-US">n </span>
就是运行级<span lang="EN-US">0-6) </span>
</span>


3</span>
<span>):<span lang="EN-US">chkconfig </span>
命令(<span lang="EN-US">redhat </span>
操作系统下)</span>


</span>


或者<span lang="EN-US"> Windows</span>
,<span lang="EN-US">Linux </span>
可以有多种运行级。常见的就是多用户的<span lang="EN-US">2,3,4,5 </span>
,很多人知道<span lang="EN-US"> 5 </span>
是运行<span lang="EN-US">
X-Windows</span>
</span>


就<span lang="EN-US"><span>????? </span>
</span>
是关机了。运行级的改变可以通过<span lang="EN-US"> init </span>
命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用</span>


<span>来切换。在<span lang="EN-US"><span>??????
</span>
Linux </span>
的运行级的切换过程中,系统会自动寻找对应运行级的目录<span lang="EN-US">/etc/rc[0-6].d</span>
下的<span lang="EN-US">K </span>
和</span>


<span>开头的文件,按后面的数字顺序,执行这<span lang="EN-US"><span>????? </span>
</span>
些脚本。对这些脚本的维护,是很繁琐的一件事情,<span lang="EN-US">Linux </span>
提供了<span lang="EN-US">chkconfig</span>
</span>




</span>
<span>语法为: </span>


</span>


chkconfig --list [name] </span>


chkconfig --add name </span>


chkconfig --del name </span>


chkconfig [--level levels] name </span>


chkconfig [--level levels] name </span>


</span>


chkconfig </span>
<span>有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。
</span>


</span>


chkconfig </span>
<span>没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回<span lang="EN-US"> true</span>
,否则返回<span lang="EN-US"><span>????? </span>
false</span>
。<span lang="EN-US"> --level </span>
选项可以指定要查看的运行级而不一定是当前运行级。
</span>


</span>


</span>
<span>如果在服务名后面指定了<span lang="EN-US">on</span>
,<span lang="EN-US">off </span>
或者<span lang="EN-US"> reset</span>
,那么<span lang="EN-US"> chkconfig </span>
会改变指定服务的启动信息。<span lang="EN-US">on </span>
和<span lang="EN-US"> off </span>
分别指服务在改变运行级时的<span lang="EN-US"><span>????? </span>
</span>
启动和停止。<span lang="EN-US">reset </span>
指初始化服务信息,无论有问题的初始化脚本指定了什么。
</span>


</span>


</span>
<span>对于<span lang="EN-US"> on </span>
和<span lang="EN-US"> off </span>
开关,系统默认只对运行级<span lang="EN-US"> 3</span>
,<span lang="EN-US">4</span>
,<span lang="EN-US"> 5</span>
有效,但是<span lang="EN-US"> reset </span>
可以对所有运行级有效。指定<span lang="EN-US"> --level </span>
选项时,可以选择特<span lang="EN-US"><span>?????? </span>
</span>
定的运行级。 </span>


</span>


</span>
<span>需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,<span lang="EN-US">init </span>
不会重新启动已经启动的服务,也不会再<span lang="EN-US"><span>????? </span>
</span>
次去停止已经停止的服务。 </span>


</span>


</span>
<span>选项介绍: </span>


</span>


--level levels </span>


</span>
<span>指定运行级,由数字<span lang="EN-US"> 0 </span>
到<span lang="EN-US"> 7 </span>
构成的字符串,如: </span>


</span>


--level 35 </span>
<span>表示指定运行级<span lang="EN-US">3 </span>
和<span lang="EN-US">5</span>
。 </span>


</span>
<span>要在运行级别<span lang="EN-US">3</span>
、<span lang="EN-US">4</span>
、<span lang="EN-US">5</span>
中停运<span lang="EN-US"> nfs </span>
服务,使用下面的命令:<span lang="EN-US">chkconfig --level 345 nfs
off</span>
</span>


</span>


--add name </span>


</span>
<span>这个选项增加一项新的服务,<span lang="EN-US">chkconfig </span>
确保每个运行级有一项 启动<span lang="EN-US">(S) </span>
或者 杀死<span lang="EN-US">(K) </span>
入口。如有缺少,则会从缺省的<span lang="EN-US">init </span>
脚本自动<span lang="EN-US"><span>????? </span>
</span>
建立。 </span>


</span>


--del name </span>


</span>
<span>用来删除服务,并把相关符号连接从<span lang="EN-US"> /etc/rc[0-6].d </span>
删除。 </span>


</span>


--list name </span>


</span>
<span>列表,如果指定了<span lang="EN-US">name </span>
那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。 </span>


</span>


</span>
<span>运行级文件 </span>


</span>


</span>
<span>每个被<span lang="EN-US">chkconfig </span>
管理的服务需要在对应的<span lang="EN-US">init.d </span>
下的脚本加上两行或者更多行的注释。
</span>


</span>
<span>第一行告诉<span lang="EN-US"> chkconfig </span>
缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用<span lang="EN-US"> - </span>
代替运行级。 </span>


</span>
<span>第二行对服务进行描述,可以用
跨行注释。 </span>


</span>


</span>
<span>例如,<span lang="EN-US">random.init </span>
包含三行: </span>


# chkconfig: 2345 20 80 </span>


# description: Saves and restores system
entropy pool for </span>


# higher quality random number generation.
</span>


</span>
<span>表明<span lang="EN-US"> random </span>
脚本应该在运行级<span lang="EN-US"> 2, 3, 4, 5 </span>
启动,启动优先权为<span lang="EN-US">20</span>
,停止优先权为<span lang="EN-US"> 80</span>
。 </span>


</span>


</span>
<span>好了,介绍就到这里了,去看看自己目录下的<span lang="EN-US">/etc/rc.d/init.d </span>
下的脚本吧。<span lang="EN-US"><span>? </span>
</span>
</span>


</span>


</span>
<span>设置自启动服务<span lang="EN-US">:chkconfig --level 345 nfs on</span>
</span>


</span>


<span>实例介绍:</span>


</span>


<span>、在<span lang="EN-US">linux</span>
下安装了<span lang="EN-US">apache </span>
服务(通过下载二进制文件经济编译安装、而非<span lang="EN-US">rpm</span>
包)、<span lang="EN-US">apache </span>
服务启动命令:<span lang="EN-US"><span>?????????? </span>
</span>
</span>


</span>
<span>。让<span lang="EN-US">apache</span>
服务运行在运行级别<span lang="EN-US">3</span>
下面。<span lang="EN-US"><span>? </span>
</span>
命令如下:</span>


</span>


1</span>
<span>)<span lang="EN-US">touch /etc/rc.d/init.d/apache</span>
</span>


vi /etc/rc.d/init.d/apache</span>


chown -R root /etc/rc.d/init.d/apache</span>


chmod 700 /etc/rc.d/init.d/apache</span>


</span>

ln -s /etc/rc.d/init.d/apache
/etc/rc.d/rc3.d/S60apache <span>??</span>
#S</span>


的简写、代表启动、<span lang="EN-US">K</span>
是<span lang="EN-US">kill</span>
的简写、代表关闭。<span lang="EN-US">60</span>
数字<span lang="EN-US"><span>?????? </span>
</span>
</span>


系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的<span lang="EN-US"><span>????? </span>
</span>
</span>




</span>


apache</span>
<span>的内容:</span>


#!/bin/bash</span>


#Start httpd service</span>


/server/apache/bin/apachectl start</span>


</span>


</span>
<span>至此<span lang="EN-US"> apache</span>
服务就可以在运行级别<span lang="EN-US">3</span>
下 随机自动启动了。(可以结合<span lang="EN-US">chkconfig </span>
对启动服务进行相应的调整)。</span>


所以以下启动顺序仅供参考</span>

Redhat Redflag centos fc
linux</span>
系统里面脚本的启动</span>






进行启动<span lang="EN-US"> vmlinuz</span>
</span>


</span>






<span>里面的脚本)</span>




登录界面<span lang="EN-US"> login</span>
</span>


在用户登录的时候执行<span lang="EN-US">sh</span>
脚本的顺序:每次登录的时候都会完全执行的</span>













 
0
1
分享到:
评论

相关推荐

    Arm-linux 自定义开机启动程序,避开从桌面启动

    - [Linux开机启动服务设置](http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html) - [Linux系统启动过程详解](http://linux.chinaunix.net/techdoc/install/2006/03/10/928782.shtml) - [Linux开机启动...

    centos7开机自启动执行脚本

    在Linux系统中,CentOS 7是一个广泛应用的服务器操作系统,对于系统管理员来说,配置开机自启动脚本是一项基本任务,可以确保系统启动时自动运行特定的服务或程序。这里我们将详细探讨如何在CentOS 7中设置开机自...

    SUSE Linux下开机自动运行脚本命令的方法

    ### SUSE Linux 下开机自动运行脚本命令的方法 #### 概述 在SUSE Linux(如openSUSE)中,为了实现系统启动时自动执行某些脚本或命令,需要了解和利用特定的启动脚本机制。本文将详细介绍openSUSE 11和10 SP2中的...

    Linux 添加系统服务、设置开机启动、设置启动顺序、chkconfig.docx

    这是推荐的方法,有些 Linux 不支持在服务脚本注释中添加注释 #chkconfig: 2345 64 36,64 代表启动顺序,36 代表关闭顺序,2345 代表 chkconfig –list 中的 2345 项打开。 方法(二):修改 /etc/rc.d/rc.local ...

    Linux 开机(服务、脚本)启动顺序.docx

    Linux 开机服务启动顺序 Linux 系统运行级别是基于 SysVinit 概念的,通过配置脚本文件实现 Linux 开机服务。SysVinit 以运行级的模式来工作,一般有 7 个运行级(从 0 到 6),每个运行级对应于一套设定好的任务。...

    Linux一键启动多个jar

    首先,我们需要理解“Linux一键按照顺序启动、停止、重启多个jar”的概念。这通常涉及到编写一个bash shell脚本,该脚本可以依次执行Java命令来运行、停止或重启多个.jar文件。例如,`gollum.sh`可能是这样一个脚本...

    Linux开机启动程序rc.local1

    【Linux开机启动程序rc.local详解】 在Linux操作系统中,开机启动程序是一个至关重要的部分,它决定了系统启动时自动运行哪些服务和脚本。rc.local是一个传统的方法,用于配置系统启动时执行的命令,尤其在CentOS7...

    linux各自启动配置脚本简介

    ### Linux 启动配置脚本详解 #### 一、Linux 的启动流程 Linux 系统启动过程是一个复杂而有序的过程,涉及到多个阶段和组件。理解这些启动机制对于系统管理员来说至关重要,因为它能帮助我们更好地诊断启动过程中...

    Linux开机启动顺序

    Linux开机启动顺序是一个复杂但有序的过程,涉及到计算机硬件初始化、操作系统加载和用户环境的构建等多个环节。以下是详细的步骤解析: 1. **加载BIOS**:BIOS(基本输入输出系统)是计算机启动时首先访问的固件,...

    精品专题(2021-2022年收藏)Linux开机自动启动脚本方法.doc

    总结来说,理解Linux开机自动启动脚本的方法对于系统管理员来说至关重要,它可以帮助我们更有效地管理服务,确保系统在启动时按预期工作。同时,通过监控系统运行时间,我们可以更好地掌握系统的健康状况和性能。在...

    Linux下WebLogic开机启动设置

    脚本的开头部分包含了`chkconfig`指令,用于定义服务在运行级别3和5中的启动和停止顺序。接着是描述性文本,以及一系列环境变量的定义。这些变量包括: 1. `LC_ALL`: 设置字符编码,这里是中文GB18030。 2. `BEA_...

    linux 开机启动

    总之,Linux开机启动的管理涉及到多个方面的知识,包括了解init进程的工作原理、登录与注销脚本的使用、crond和at的定时任务配置以及服务程序的启动与停止等。掌握这些知识点,对于系统管理维护和自动化任务的设置是...

    linux学习-将seafile启动脚本设置为开机启动服务.doc

    在Linux系统中,为了在每次开机时自动启动特定的程序或服务,通常会将相应的启动脚本设置为Systemd服务。Seafile是一个流行的开源网盘系统,它允许用户在自己的服务器上部署私有云存储。在Linux环境中,如果你通过...

    在linux下设置开机自动启动程序的方法.pdf

    Linux 开机启动脚本的顺序 在 Red Hat Linux 中,开机启动脚本的顺序为: 1. 加载内核执行 init 程序 2. 执行 /etc/rc.d/rc.sysinit 脚本 3. 执行 /etc/rc.d/rc $RUNLEVEL 脚本 4. 执行 /etc/rc.d/rc.local 脚本 5...

    在linux下设置开机自动启动程序的方法借鉴.pdf

    在 Red Hat Linux 中,自启动脚本的顺序为:加载内核、执行 init 程序、执行 /etc/rc.d/rc.sysinit 脚本、执行 /etc/rc.d/rc.$RUNLEVEL 脚本、执行 /etc/rc.d/rc.local 脚本、等待用户登录。了解这些基础知识点,...

    Linux开机启动过程详解

    Linux开机启动过程是一个复杂但有序的序列,涉及多个步骤,从硬件初始化到操作系统核心的加载,再到用户界面的呈现。让我们逐步深入理解这个过程。 首先,计算机接通电源后,主板上的基本输入输出系统(BIOS)开始...

    CentOS 7.2 设置脚本在服务器开机时自动启动

    Linux 的启动流程主要顺序是:加载内核、启动初始化进程、确定运行级别、加载开机启动程序、用户登录。在第 4 步加载启动程序中,init 进程逐一加载开机启动程序,其实就是运行指定目录里的启动脚本。在运行完指定...

    Linux 的启动流程

    在Linux系统中,许多程序需要在开机时启动,这些程序被称为守护进程。这些守护进程的启动脚本通常位于/etc/init.d目录下。init进程会根据当前的运行级别,逐一执行这些脚本,从而启动或停止相应的服务。 第四步是...

    UBUNTU添加程序开机自动启动的方法

    例如,添加一个自定义的可执行文件或脚本,使其在开机启动时执行。编辑好脚本后,给其赋予相应的可执行文件,然后在 /etc/rc5.d 目录下做一个软链接。使用 sysv-rc-conf 配置一下启动服务,即可实现开机启动时自动...

Global site tag (gtag.js) - Google Analytics