`

linux启动服务概述

阅读更多
        传统的linux中定义了七个运行级,分别如下:
        1、0级是完全关闭系统的级别。
        2、1级或S级代表单用户模式,会关闭所有的多用户和远程登录进程。
        3、2--5级是多用户级别。
        4、6级是“多重引导”级别。
        其中,0级和6级是不能让系统停留的,进入这两个级别的效果是关闭系统或者重新引导系统。在多数系统上,正常的多用户运行级别是2或3级,运行级5经常用于X Windows的登录进程,运行级4很少使用,运行级1和S的定义在每种系统上是不同的。
        每个运行级下运行的服务是不一样的,/etc/inittab 规定了系统进入到每一级别时要运行的命令。在机器引导时,init 从运行级0开始,逐级往上运行到在 /etc/inittab 中所设置的默认运行级别。当机器关闭时,又以相反的顺序执行同样的处理过程。
        不过为了更灵活,linux通常采用“改变运行级”脚本的形式,由 inittab 来调用。这一脚本接下来执行位于与运行级有关的目录下的其它脚本,从而把系统带入到新的状态。
        启动脚本的主拷贝位于 /etc/init.d/ 目录下,每个脚本负责一个守护进程或者系统的某个特定方面。为方便管理,这些脚本都可接受参数 start 和 stop,多数还接受 restart,以便能快速启动或停止对应的服务。例如下面这个可以启动、停止或重新启动 sshd 服务的启动脚本:
#!/bin/sh

test -f /usr/bin/sshd || exit 0
case "$1" in
    start)
        echo "Starting sshd."
        /usr/sbin/sshd
        ;;
    stop)
        echo "Stopping sshd."
        kill `cat /var/run/sshd.pid`
        ;;
    restart)
        echo "Stopping sshd."
        kill `cat /var/run/sshd.pid`
        echo "Starting sshd"
        /usr/sbin/sshd
        ;;
    *)
        echo "Usage: /etc/init.d/sshd start|stop|restart"
        exit 1
        ;;
esac

        尽管 /etc/init.d/ 中的脚本能启动和停止各个服务,但是由init运行的主控制脚本需要知道其它一些信息,这些信息说明了要进入任何指定的运行级别需运行哪些脚本。为简化操作,当主脚本把系统引入到一个新的运行级别时,它不是直接在 init.d 目录下找,而是查找叫做 /etc/rcLEVEL.d/ 的目录,此处的 LEVEL 就是要进入的运行级别编号(例如 rc0.d、rc1.d 等)。这些 /etc/rcLEVEL.d/ 目录包含了链接到 /etc/init.d/ 目录中的服务的符号链接,它们的名称都以S或K开头,后跟一个数字以及该脚本所控制的服务名(例如,S55sshd等)。当init从低的运行级别向高的运行级别过渡时,它按照数字递增的顺序运行所有以S(表示start)开头的、带有start参数的脚本;当init从高的运行级别向低的运行级别过渡时,它按照数字递减的顺序运行所有以K(表示kill)开头的、带有stop参数的脚本。
        这一机制让系统管理员可以细粒度地控制启动服务的顺序。所以在加入新服务时,一定要考虑到这种依赖关系。要告诉系统什么时候启动一个守护进程,我们必须在适当的目录下创建符号链接。例如,要告诉系统在运行级2期间启动CUPS并在系统关闭前妥善地停止这个守护进程,那么创建下面这一对链接就够了(有些系统以不同的方式处理系统关闭和重新引导,所以可能需要在 /etc/rc6.d/ 目录中也放一个符号链接,以确保系统重新引导时,该守护进程能被正确关闭):
          # ln -s /etc/init.d/cups  /etc/rc2.d/S80cups
          # ln -s /etc/init.d/cups  /etc/rc2.d/K80cups
        对于 Red Hat 和 Fedora 来说,init 都把运行级作为参数来调用脚本 /etc/rc.d/rc。/etc/rc.d/rc 一般运行在“正常”模式下,此时它只做它自己的事情。它也可运行在“确认”模式下,此时它在运行每个单独的启动脚本以前会询问用户。Red Hat 和 Fedora 有一个 chkconfig 命令来帮助用户管理服务。该命令可以在系统中增删启动脚本,也可以管理这些脚本执行的优先级,还能列出一个脚本目前为哪些运行级做了配置。Red Hat 还有一个 rc.lacal 脚本,是作为启动过程的一部分而运行的最后一个脚本,用户可以向其中添加自己定制的启动内容。Red Hat 引导过程的大多数配置应该通过操作 /etc/sysconfig 中的配置文件来完成。下表总结了 /etc/sysconfig 目录中一些项的功能:
文件/目录功能或内容
clock指定系统有的时钟类型(几乎总是 UTC)
console一个总是为空的神秘目录
httpd决定使用 Apache 的何种处理模式
hwconf包含系统硬件的所有信息,由 Kudzu 使用
i18n包含系统的本地设置(日期格式、语言等)
init配置来自启动脚本的消息的显示方式
keyboard设置键盘类型(使用 us 代表标准的 101 键美国键盘)
mouse设置鼠标类型,由 X 和 gpm 使用
network设置全局的网络参数(主机名称、网关、转发机制等)
network-scripts包含补充脚本和网络配置文件的目录
sendmail为 sendmail 设置选项


参考资料:《linux系统管理技术手册》第二章--引导和关机。
分享到:
评论

相关推荐

    linux下oracle服务监听开始自动启动

    ### Linux下Oracle服务与监听器自动启动配置详解 在企业级应用环境中,Oracle数据库系统作为核心数据管理平台,其稳定性和可用性至关重要。为了确保Oracle服务(包括数据库服务和监听器)能够在Linux操作系统启动时...

    嵌入式LINUX 系统开发概述

    ### 嵌入式Linux系统开发概述 #### 一、嵌入式系统基本概念与特点 **1.1 嵌入式系统定义** 嵌入式系统是指将计算机硬件和软件集成在一个或多个处理器上,形成一个专用的计算机系统,用于实现特定功能的产品或设备...

    ARM Linux启动过程分析

    ARM Linux启动过程分析 1. ARM Linux 启动过程概述 ARM Linux 启动过程可以分为四个部分:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。其中 bootloader 是系统启动或复位以后执行的第一段代码,...

    Linux概述,包括 安装、启动和关闭Linux

    启动和关闭Linux系统,可以通过传统的BIOS或UEFI引导方式,也可以利用现代的系统管理工具如Systemd来控制。 总的来说,Linux是一个强大且灵活的操作系统,它提供了一种经济高效的选择,特别是在服务器、嵌入式系统...

    Linux启动过程分析

    "Linux启动过程分析" Linux 启动过程分析是嵌入式 Linux 系统的核心组成部分,理解 Linux 启动过程对嵌入式系统的开发和应用至关重要。本文将详细分析 Linux 启动过程,包括 bootloader 的执行流程和 ARM Linux 的...

    linux启动过程分析及dns服务器毕业论文设计.doc

    一、Linux 操作系统概述 Linux 操作系统是由瑞典赫尔辛基大学的学生 Linus Torvalds 在 1991 年开发出来的,在 GNU 的支持下,Linux 获得了巨大的发展。Linux 操作系统的特点是开放、免费、可移植、多用户和多任务...

    linux启动盘制作过程

    ### Linux启动盘制作详解 #### 一、概述 在虚拟化技术广泛应用的今天,Linux启动盘成为了一种非常实用的工具,特别是在VirtualBox或VMware等虚拟机环境中。本文将详细介绍如何从零开始构建一个Linux启动盘,适用于...

    Linux启动脚本

    ### Linux启动脚本详解 #### 一、概述 在Linux环境下,经常需要通过脚本来启动或停止Java应用程序。本文档将详细介绍一个通用的Linux启动脚本,它不仅可以启动Java程序,还能有效地管理进程的生命周期。该脚本由...

    Linux启动界面切换图形界面

    ### Linux启动界面切换:图形界面与字符界面的深入解析 #### 概述 在Linux操作系统中,用户可以选择在启动时进入图形界面或字符界面。这一灵活性不仅满足了不同场景下的需求,也为用户提供了多样化的操作体验。...

    嵌入式linux开发概述与环境搭建.rar

    3. **文件系统构建**:嵌入式Linux系统通常需要一个定制的文件系统,包含启动脚本、库文件、配置文件等,开发者需要根据需求选择合适的文件系统类型(如BusyBox、Buildroot或Yocto Project)来构建。 4. **设备驱动...

    Linux阿帕奇服务器配置

    Linux 阿帕奇服务器配置概述 Linux 阿帕奇服务器配置是指在 Linux 操作系统中配置阿帕奇服务器的相关设置,以便实现个人站点的搭建和用户认证。本文将详细介绍 Linux 阿帕奇服务器的配置过程,包括服务器的安装、...

    linux oracle重新启动

    #### 一、概述 在Linux环境中,Oracle数据库的管理是常见的运维操作之一。为了确保系统的稳定运行,有时需要重启Oracle数据库及其监听器。本文将详细介绍在Linux环境下重启Oracle数据库及其监听器的方法,并提供...

    linux 启动项可以这样设置

    在这个概述中,我们将详细讲解 Linux 启动项的设置,包括 chkconfig 命令的使用、运行级别的概念、init 进程的作用、rc.d 目录下的文件结构等。 一、chkconfig 命令 chkconfig 命令是用于管理 Linux 启动项的命令...

    Linux-startup-process.rar_linux_linux 启动_linux 培训_linux内核_startu

    以上是Linux启动过程的基本概述。在实际操作中,每个步骤都可能涉及更复杂的细节和配置。通过深入理解这个过程,我们可以更好地调试和优化系统的启动性能,以及解决启动相关的故障。对于Linux初学者和管理员来说,...

    Linux启动过程

    基于i386体系结构的Linux启动代码分析,概述Linux系统的启动顺序

    linux2.6内核启动流程

    #### Linux 2.6 内核启动流程概述 Linux 2.6 内核的启动过程主要包括三个阶段:**解压缩**、**初始化**以及**启动应用程序**。这一过程是操作系统启动过程中至关重要的环节,确保了系统能够正确地初始化硬件资源,...

    linux基础教程-linux服务器基础教程

    linux基础教程 # Linux基础教程 - Linux服务器基础教程介绍 Linux是一种自由和开放源代码的类Unix操作系统。...- 稳定可靠:Linux是一个非常稳定和可靠的操作系统,可以长时间运行而不需要重新启动。 - 安全性高:

    ARM Linux启动过程分析.txt

    ### ARM Linux启动过程分析 #### 一、引言 随着嵌入式技术的发展,Linux作为一款高度可移植的操作系统,在各种电子设备上得到了广泛应用。针对不同的处理器架构,Linux的启动过程也会有所不同。本文将以S3C2410 ...

Global site tag (gtag.js) - Google Analytics