掌握重点-服务如何按顺序启动-Linux-linux服务启动顺序 (重点掌握是什么意思)

教程大全 2025-07-17 08:12:10 浏览

Linux服务的启动顺序一直都是系统管理员和IT专业人士所关注的重要议题。 FreeBSD及其他类Unix系统一直以来都使用rc{服务编号},来指定服务启动和停止顺序。而在Linux 服务器 上,从Fedora Core 3开始,引入了SysVinit系统服务器管理架构,以替代单一的rc服务的能力,可以在更多的服务上提供更精准的控制。

首先,Linux服务启动和停止顺序是按照级别(runlevel)进行控制的。每个级别(0-6)对应着特定的类型的服务,其启动和停止顺序随着Linux版本的变化而有所不同。例如,在Fedora Core 3上,默认的runlevel是3,这意味着只有级别3以下的服务才会被启动和停止。

因此,当您要重新排列Linux服务启动顺序时,首先要确认在哪个运行级别下需要调整服务的顺序,以便知道那些服务可以被排列起来。为确保服务的正确启动和停止,我们可以使用以下几种系统管理员常见的方法操作:

Linux

1. 修改/etc/inittab文件,将特定服务从runlevel 3中移除,然后向其他运行级别添加,以重新排列顺序。例如,

# 3:5:respawn:/sbin/mingetty tty3

以上配置意味着当Linux系统启动的时候,Runlevel 3会启动mingetty tty3 服务

2. 对某些服务添加优先级,以确保每次启动注册的服务时,都会优先启动特定的服务。例如,

# chkconfig –level 3 nscd on

# chkconfig nscd –level 3 90

以上配置意味着当Linux系统启动Runlevel 3的时候,会优先启动nscd服务。

3. 通过修改服务启动脚本,明确由则服务依赖。例如,在配置SSH服务时,我们可以在/etc/init.d/sshd文件中添加:

# Required-Start: network

以上配置意味着,当启动Runlevel 3的时候,会优先启动网络服务,然后才会启动ssh服务。

总之,要掌握Linux服务启动顺序,需要深入了解Runlevel概念,修改/etc/inittab文件,通过chkconfig以及修改服务脚本。只有这样,才能确保服务的正确启动和停止。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


LINUX操作系统的启动过程

一、启动内核 首先介绍启动内核部分。 电脑启动时,BiOS装载MBR,然后从当前活动分区启动,LILO获得引 导过程的控制权后,会显示LILO提示符。 此时如果用户不进行任何操作,LILO将在等待制定 时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作 系统列表,选择相应的操作系统名称就能进入相应的操作系统。 当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从Root文件系统所在的分 区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。 LINUX内核获得控制权后, 以如下步骤继续引导系统: 1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。 内核映象前面的一些 代码完成解压缩。 2. 如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户 选择适当的文本显示模式。 但如果在内核的编译过程中预先设置了文本模式,则不会提示选 择显示模式。 该显示模式可通过LILO或RDEV工具程序设置。 3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序 进行配置。 这时,显示器上出现内核运行输出的一些硬件信息。 4. 接下来,内核装载ROOT文件系统。 ROOT文件系统的位置可在编译内核时指定,也可通过 LILO或RDEV指定。 文件系统的类型可自动检测。 如果由于某些原因装载失败,则内核启动 失败,最终会终止系统。 二、执行init程序 其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。 init的任务是 启动新进程和退出时重新启动其它进程。 例如,在大多数Linux系统中,启动时最初装入 六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台, 因而总是提供六个虚拟登陆控控制台进程。 控制init程序操作的规则存放在文件/etc/inittab中。 Red Hat Linux缺省的inittab文 件如下: # #inittab This file describes how the INIT process should set up the system in a certain #run-level. # # #Default runlevels used by RHS are: #0-halt(Do NOT set initdefault to this) #1-Single user mode #2-Multiuser,without NFS(the same as 3,if you do not have networking) #3-Full multiuser mode #4-unused #5-X11 #6-reboot(Do NOT set initdefault to this) # id:3:initdefault: #system initialization si::sysinit:/etc/rc.d/ 10:0:wait:/etc/rc.d/rc 0 11:1:wait:/etc/rc.d/rc 1 12:2:wait:/etc/rc.d/rc 2 13:3:wait:/etc/rc.d/rc 3 14:4:wait:/etc/rc.d/rc 4 15:5:wait:/etc/rc.d/rc 5 16:6:wait:/etc/rc.d/rc 6 #Things to run in every runlevel ud:once:/sbin/update #Trap CTRL-ALT-delete ca::ctrlaltdel:/sbin/shutdown -t3 -r now #When our UPS tells us power has failed,assume we have a few minutes of power a #shutdown for 2 minutes from now. #This does,of course,assume you have powered installed and your UPS connected and working #correctly. pf::powerfail:/sbin/shutdown -f -h +2 Power Restored;Shutdown Cancelled #Run gettys in standard runlevels 1:respawn:/sbin/minggetty tty1 2:2345:respawn:/sbin/minggetty tty2 3:2345:respawn:/sbin/minggetty tty3 4:2345:respawn:/sbin/minggetty tty4 5:2345:respawn:/sbin/minggetty tty5 6:2345:respawn:/sbin/minggetty tty6 #Run xdm in runlevel 5 x:5:respawn:/usr/bin/X11/xdm -nodaemon Linux有个运行级系统,运行级是表示系统当前状态和init应运行哪个进程并保持在这种 系统状态中运行的数字。 在inittab文件中,第一个项目指定启动时装入的缺省运行级。 上例中是个多用户控制台方式,运行级为3。 然后,inittab文件中每个项目指定第二个 字段的项目用哪种运行级(每个字段用冒号分开)。 因此,对运行级3,下列行是相关的: 13:3:wait:/etc/rc.d/rc 3 1:respawn:/sbin/minggetty tty1 2:2345:respawn:/sbin/minggetty tty2 3:2345:respawn:/sbin/minggetty tty3 4:2345:respawn:/sbin/minggetty tty4 5:2345:respawn:/sbin/minggetty tty5 6:2345:respawn:/sbin/minggetty tty6 最后六行建立Linux提供的六个虚拟控制台。 第一行运行启动脚本/etc/rc.d/ rc 3; 这将运行目录/etc/ rc.d/rc3.d中包含的所有脚本,这些脚本表示系统初始化时要启动的程序。 一般来说, 这些脚本不需要编辑或改变,是系统缺省的。

怎样查看Linux下systemd启动了哪些服务,先后顺序如何?

您可以通过pstree命令查看启动了哪些服务,使用systemd-analyse plot > 生成一张启动详细信息矢量图,然后用图像浏览器或者网页浏览器打开查看

Linux环境变量顺序是什么?

路径排前面的优先。 比如 $JAVA_HOME/bin和/usr/bin下面都有java。 PATH=$JAVA_HOME/bin:$PATH 时,执行 java的时候是$JAVA_HOME/bin/java,如果没有再执行/usr/bin/java PATH=$PATH:$JAVA_HOME/bin 时,执行 java的时候是/usr/bin/java。 一般用户设定都是为了特殊用途,使用方式2没什么意义,所以方式1多些。 内核启动的时候,各个驱动初始化的工作在文件init/main.c中的do_basic_setup()函数中做.

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐