linux自启动命令脚本执行顺序
-
在Linux系统中,自启动命令脚本的执行顺序取决于不同的发行版和启动管理系统。下面以常用的Systemd和SysVinit为例,介绍一下它们的自启动命令脚本执行顺序。
1. Systemd
Systemd是目前大多数Linux发行版使用的启动管理系统,它使用单元文件(Unit File)来管理各个系统服务的启动。对于自启动命令脚本,可以通过创建对应的.service文件来实现。在Systemd中,有以下几个级别(Target):
– multi-user.target:多用户模式,相当于传统的运行级别3;
– graphical.target:图形界面模式,相当于传统的运行级别5;
– rescue.target:救援模式,用于系统修复和紧急救援;
– emergency.target:紧急模式,只启动最基本的系统服务。Systemd会根据不同的级别,依次启动对应的服务单元。对于自启动命令脚本,可以通过在对应级别的.target文件中添加相关的依赖关系来控制执行顺序。
2. SysVinit
SysVinit是早期Linux系统使用的启动管理系统,现在已经逐渐被Systemd所取代。在SysVinit中,每个自启动命令脚本被称为启动脚本(init script),存放在/etc/init.d目录下。SysVinit中有以下几个运行级别(Runlevel):
– 0:关机
– 1:单用户模式
– 2:多用户模式(没有网络)
– 3:多用户模式(有网络)
– 4:保留,未使用
– 5:图形界面模式
– 6:重启SysVinit会根据当前运行级别下的启动脚本,在指定的顺序中执行。了解和调整这个顺序可以使用chkconfig命令。
在SysVinit中,每个启动脚本都有一个S和一个K开头的编号,S表示启动,K表示停止。根据编号来决定启动顺序,编号越小越早启动。
综上所述,Linux系统中自启动命令脚本的执行顺序取决于所使用的启动管理系统。对于Systemd而言,可以通过在对应级别的.target文件中添加相关的依赖关系来控制执行顺序;而对于SysVinit,则是根据启动脚本的编号来决定启动顺序。
2年前 -
在Linux系统中,自启动命令脚本的执行顺序与其所属的运行级别(runlevel)有关。运行级别是Linux系统中一种表示系统状态和正在运行的服务的概念。以下是Linux系统中自启动命令脚本的执行顺序:
1. 系统初始化阶段:
在系统启动过程中的初始化阶段,会执行一些系统启动所必需的基本任务,如装载文件系统和初始化设备等。在初始化阶段,系统会执行位于 /etc/rc.sysinit 脚本中的命令。2. 进入运行级别:
在系统初始化阶段完成后,系统会进入特定的运行级别。运行级别是由系统管理员或启动脚本指定的,其中包括以下几个常见的运行级别:
– 运行级别 0:关机
– 运行级别 1:单用户模式
– 运行级别 2、3、4:多用户模式,无图形界面
– 运行级别 5:多用户模式,有图形界面
– 运行级别 6:重启3. 进入运行级别后执行的任务:
当系统进入特定的运行级别后,会执行与该运行级别相关的命令脚本。这些脚本位于 /etc/rc.d/rcX.d/ 目录中(X 为运行级别的数字)。一般来说,脚本会分为启动服务(S 开头)和关闭服务(K 开头)两种类型。系统会按照脚本命名的顺序依次执行这些脚本,启动相应的服务。4. 启动系统服务:
在进入特定运行级别后,系统会根据 /etc/rc.d/rcX.d/ 目录下的启动服务脚本来启动相应的系统服务。这些服务脚本的执行顺序由脚本名中的数字前缀决定,数值越小的脚本越先执行。通常,系统服务的启动脚本位于 /etc/init.d/ 目录中。5. 用户级别启动脚本:
在系统进入指定运行级别并启动了必需的系统服务之后,还可以执行用户级别启动脚本。这些脚本位于用户的 home 目录下的 .bash_profile 或 .bashrc 文件中。请注意,具体的自启动命令脚本的执行顺序可能会因Linux发行版的不同而有所差异。上述顺序主要基于传统的SysVinit启动系统。对于使用systemd作为初始化系统的发行版,自启动命令脚本的执行顺序将有所不同。
2年前 -
在Linux中,自启动命令脚本的执行顺序可以通过以下步骤控制:
1. 确保脚本的可执行权限
在执行自启动脚本之前,需要确保脚本具有可执行权限。可以使用chmod命令为脚本添加可执行权限,例如:
“`
chmod +x /path/to/script.sh
“`2. 编写自启动脚本
创建一个脚本文件,文件名通常以”.sh”结尾,例如”myscript.sh”。在脚本中编写需要在系统启动时执行的命令或操作,例如启动服务、挂载磁盘等。3. 将脚本添加到启动目录
将自启动脚本添加到系统的启动目录中。启动目录的位置根据Linux发行版的不同而有所差异,一般位于以下目录之一:
– /etc/init.d/ :此目录通常用于存放系统启动和关闭脚本。
– /etc/rc.d/ :此目录下包含了一系列的启动脚本,分别对应不同运行级别(RunLevel)下需要启动的服务。将自启动脚本复制到启动目录中,例如:
“`
cp /path/to/myscript.sh /etc/init.d/
“`4. 设置启动脚本的运行级别
将自启动脚本添加到适当的运行级别中。不同的运行级别对应不同的系统状态,例如单用户模式、多用户模式等。在脚本文件中添加以下注释行,用于指定脚本在哪些运行级别下启动:
“`
#!/bin/bash
# chkconfig: 2345 80 20
“`
上述注释行中的”2345″表示脚本在运行级别2、3、4和5下启动,”80″表示启动优先级,”20″表示停止优先级。
根据不同的发行版和init系统,也可以使用其他工具来管理自启动脚本,例如systemd、Upstart等。5. 更新启动脚本的运行级别
调用适当的命令来更新启动脚本的运行级别。不同的Linux发行版使用不同的命令,例如:
– 对于SysV init系统:
“`
chkconfig –add myscript
“`
– 对于systemd系统:
“`
systemctl enable myscript
“`6. 重启系统
重启系统以使自启动脚本生效,或者也可以手动启动脚本,例如:
“`
/etc/init.d/myscript start
“`通过上述步骤,可以设置Linux系统的自启动命令脚本的执行顺序。请注意,具体的操作细节可能因Linux发行版和init系统的不同而有所差异,请根据实际情况进行操作。
2年前