Linux开机启动顺序启动顺序及配置开机启动
Linux:开机启动顺序启动顺序及配置开机启动
开机启动顺序
1、加载内核
2、启动 init(/etc/inittab) pid=1
3、系统初始化 /etc/rc.d/rc.sysinit
4、运行开机启动 /etc/rc.d/rc*.d #软链指向 /etc/init.d/ 通过 chkconfig 命令配置
5、非系统服务启动项 /etc/rc.d/rc.local(就是 /etc/rc.local)
6、等待用户登录 /sbin/mingetty
1
2
3
4
5
6
7
8
9
10
11
自启动脚本
1、每个用户
/etc/profile(/etc/profile.d)登录时都执行 # 环境变量
/etc/bashrc 运行bash shell时执行此文件
2、特定用户
~/.bash_profile 登录时 ~/.profile(Debian)
~/.bashrc 登录时以及每次打开新的 shell 时
~/.bash_logout 每次退出系统(退出bash shell)时,执行该文
1
2
3
4
5
6
7
8
参考
Linux 开机(脚本)启动顺序
Linux开机自动加载的几种方法
(1)编辑文件 /etc/rc.local
vim /etc/rc.local
#!/bin/sh
#This script will be executed after all the other init scripts.
#You can put your own initialization stuff in here if you don't
#want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/etc/init.d/mysqld start #mysql开机启动
/etc/init.d/nginx start #nginx开机启动
/etc/init.d/php-fpm start #php-fpm开机启动
/etc/init.d/memcached start #memcache开机启动
# 在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可
# (执行的程序需要写绝对路径,添加到系统环境变量的除外),如:
/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/etc/thttpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(2)自己写一个shell脚本
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,
系统启动后就会自动执行该目录下的所有shell脚本。
(3)通过chkconfig命令设置
将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下
vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持
#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须
1
2
3
chkconfig --add 脚本文件名 # 操作后就已经添加了
1
例如
/etc/init.d/rds_start.sh
#!/bin/sh
#chkconfig: 2345 80 90
#description:rds_start.sh
cd /home/softs/rds/bin/
nohup ./rds_start.sh &
1
2
3
4
5
说明:
2345表示系统运行级别是2,3,4或者5时都启动此服务,
20,是启动的优先级,
80是关闭的优先级,
如果启动优先级配置的数太小时如0时,则有可能启动不成功,
因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。
chmod +x /etc/init.d/auto_start.sh
chkconfig --add rds_start.sh # 添加到系统服务
chkconfig rds_start.sh on # 设置开机启动
————————————————
CentOS 设置开机自启动服务
在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd、mysqld、postfix等,安装后系统默认不会自动启动的。
就算手动执行 /etc/init.d/mysqld start 启动了服务,只要服务器重启后,系统仍然不会自动启动服务。 在这个时候,我们就需要在安装后做个设置,让系统自动启动这些服务,避免不必要的损失和麻烦
————————————————
一. 实验环境
CentOS 7.5
方法一:ln -s 建立软连接
在CentOS中总共有7种运行级别,可以在/etc/inittab 文件中进行设置,7种运行级别对应着 /etc/rc.d/rc[0-6].d 这七个目录

ps: 你可能也发现了在/etc下也有同样的7个文件夹即 /etc/rc[0-6].d ,通过查看发现/etc/rc[0-6].d其实就是/etc/rc.d/rc[0-6].d的软连接,只是为了保持和Unix的兼容性

这7个目录对应着7种不同运行级别,也就是说在每一个目录下的内容表示在该运行级别下应该启动或者关闭的服务。例如我们看一下/etc/rc.d/rc5.d目录下的内容

当然你可能也发现了,这些文件是按照如下格式命名的 [KS][1-100]servicename ,它表示当系统的运行级别为5时,它会关掉以K开头的所有服务,并启动所有以S开头的服务,其实,这些服务都是/etc/init.d/中某个服务的软连接,所以真正启动的服务是/etc/init.d目录中的某一个服务,而以K/S开头建立软连接是为了表明在对应级别下应该采取的行为,K/S后面紧跟的数字表示开/关服务的优先级。
因此,如果我们自己写了一个脚本代码 如cleanupd,需要在开机级别为3的时候自启动的话,那么我们只需要把可执行的cleanupd脚本文件放到 /etc/init.d目录下,并在对应的运行级别目录下 如/etc/rc.d/rc3.d/ 建立一个以S开头后加数字的软连接到/etc/init.d/cleanupd即可,如
————————————————
[root@localhost ~]# ln -s /etc/init.d/cleanupd /etc/rc.d/rc3.d/S95cleanup
显然,这样的设置方式比较繁琐,仅仅适合于我们想DIY的脚本服务;
方法2:chkconfig
鉴于上面的手工操作比较繁琐,在CentOS中专门提供了chkconfig 命令来设置或者取消开机自启动服务。如,查询所有开机启动的服务:

使用chkconfig 或者 chkconfig –list就可以看出当前系统已经设置的各个服务在各个运行级别下的开闭状态。如果我们想设置某个服务自启动或者关闭的话,那么只需要按照下面的格式使用即可
chkconfig servicename on/off
如:
1. 查看 sshd

2. 将 sshd 设置为开机自启动:
[root@host ~]# chkconfig sshd on
取消 sshd 的开机自启动,只需要将 on 改为 off 即可:
[root@host ~]# chkconfig sshd off
3.值得注意的是,如果这个服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去:
[root@host ~]# chkconfig --add sshd
4.如果要查询当前所有自动启动的服务,可以输入:
[root@host ~]# chkconfig --list
5.如果只想看指定的服务,只需要在 “–-list” 之后加上服务名就好了,比如查看httpd服务是否为自动启动:
[root@host ~]# chkconfig --list httpd
[root@host ~]# chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
此时0~6均为off,则说明httpd服务不会在系统启动的时候自动启动。我们输入:
[root@host ~]# chkconfig httpd on
则此时为:
[root@host ~]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这个时候2~5都是on,就表明会自动启动了。
方法三:修改 /etc/rc.d/rc.local 这个文件:
例如将 apache、MySQL、samba、svn 等这些服务的开机自启动问题一起搞定:
vi/etc/rc.d/rc.local
添加以下命令
/usr/sbin/apachectlstart
/etc/rc.d/init.d/mysqldstart
/etc/rc.d/init.d/smbstart
/usr/local/subversion/bin/svnserve-d
————————————————
版权声明:本文为CSDN博主「Peter_Lv1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40606798/java/article/details/82286273
Linux开机启动顺序启动顺序及配置开机启动的更多相关文章
- Docker:Linux离线安装docker-17.03.2-ce,配置开机自启
1. 准备docker离线包 docker官方离线包下载地址 下载需要安装的docker版本,我此次下载的是:docker-17.03.2-ce.tgz 2. 准备docker.service 系统配 ...
- Linux启动顺序、运行级别及开机启动
一.启动顺序 当我们经过BIOS引导,并选择了Linux作为准备引导的操作系统后,接下来的执行顺序如下:1.加载并执行内核 第一个被加载的东西就是内核.然后把内核在内存中解压缩,就可以开始运行了.2. ...
- SpringBoot在启动时的多环境配置以及加载顺序
通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...
- 【Linux】Jenkins以war包运行及开机启动配置(四)
本例介绍jenkins已war包运行及开机启动配置 环境:Linux环境(CentOS 7.4) 以war包运行 1.下载jenkins.war包 2.启动war包( 默认端口:8080,默认JENK ...
- 计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动
原文地址:4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动 计算机的启动
- Linux下配置Nginx(在root的/etc/rc.local里配置开机启动功能http://tengine.taobao.org/)
上面是下载的包下载地址 http://tengine.taobao.org/download_cn.html nginx官网http://nginx.org/ 下一步 下一步 其中remote为重要属 ...
- linux学习笔记-conky配置开机启动方法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.常用桌面的配置方法 创建启动文件并加入以下配置 ~/.config/autostart/conky.desktop [Des ...
- SSH框架项目配置和启动的加载顺序及请求的执行顺序
1:======配置和启动====== (1)配置web.xml 配置<context-param>,其中内容为Spring的配置文件applicationContext.xml.注意&l ...
- ubuntu系统自动配置开机启动脚本
以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢 https://www.linuxidc.com/Linux/2017-09/1471 ...
随机推荐
- 编辑 编译 乱码 透彻 讲解 keil vscode notepad++
1. 2.此时VSCODE内的改文件是乱码现象,进行如下操作,选择 通过编码重新打开, 选择GB 2312即可.(GB2312是兼容ANSI编码的) 详细解释一下: KEIL内是ANSI编码,VSCO ...
- 日志分析平台ELK之日志收集器filebeat
前面我们了解了elk集群中的logstash的用法,使用logstash处理日志挺好的,但是有一个缺陷,就是太慢了:当然logstash慢的原因是它依赖jruby虚拟机,jruby虚拟机就是用java ...
- K8S环境的Jenkin性能问题处理
环境信息 在K8S环境通过helm部署了Jenkins(namespace为helm-jenkins),用于日常Java项目构建: kubernetes:1.15 jenkins:2.190.2 he ...
- 制作u盘启动盘
制作u盘启动盘 如果是想要制作 windows 系统启动盘,windows 官网提供途径,这里不在赘述. 以下讨论制作 centos 系统启动盘,需要 centos 系统文件,开源,可从官网下载得到. ...
- 浅谈Prufer序列
\(\text{Prufer}\)序列,是树与序列的一种双射. 构建过程: 每次找到一个编号最小的叶子节点\(Leaf\),将它删掉,并将它所连接的点的度数\(-1\),且加入\(\text{Pruf ...
- MeteoInfoLab脚本示例:MODIS Sinusoidal投影HDF数据
MODIS卫星很多陆面数据都是Sinusoidal投影,数据被分为一个个10*10度(赤道地区)的瓦片(http://modis-land.gsfc.nasa.gov/MODLAND_grid.htm ...
- 解决React前端在开发环境的跨域问题
在前后端分离的分布式架构中,跨域是一道无法绕过去的门槛,众所周知,生产环境上解决跨域最便捷的方式是使用Nginx来处理,那么,在本地开发环境又该如何处理呢? React框架里处理跨域问题,可以使用ht ...
- pdf 转word 工具
在线转换,每天有次数限制,但是很强大: https://smallpdf.com/cn 可以使用python 写代码来转换文档 参考下面博客连接 https://blog.csdn.net/Dontl ...
- C# 微信access_token缓存和过期刷新
摘自:http://blog.csdn.net/hechurui/article/details/22398849 首先建立一个Access_token类 /// <summary> // ...
- Github上的沙雕项目,玩100遍都不够
这段时间大家在家自我隔离.居家办公憋坏了吧.为了打发这种无聊的生活,我决定拿出我在github上珍藏多年的沙雕项目,让大家在无聊的时候可以打发时间. Github作为互联网上最大的开源社区,一直备受程 ...