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开机启动顺序启动顺序及配置开机启动的更多相关文章

  1. Docker:Linux离线安装docker-17.03.2-ce,配置开机自启

    1. 准备docker离线包 docker官方离线包下载地址 下载需要安装的docker版本,我此次下载的是:docker-17.03.2-ce.tgz 2. 准备docker.service 系统配 ...

  2. Linux启动顺序、运行级别及开机启动

    一.启动顺序 当我们经过BIOS引导,并选择了Linux作为准备引导的操作系统后,接下来的执行顺序如下:1.加载并执行内核 第一个被加载的东西就是内核.然后把内核在内存中解压缩,就可以开始运行了.2. ...

  3. SpringBoot在启动时的多环境配置以及加载顺序

    通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...

  4. 【Linux】Jenkins以war包运行及开机启动配置(四)

    本例介绍jenkins已war包运行及开机启动配置 环境:Linux环境(CentOS 7.4) 以war包运行 1.下载jenkins.war包 2.启动war包( 默认端口:8080,默认JENK ...

  5. 计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动

    原文地址:4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动 计算机的启动

  6. Linux下配置Nginx(在root的/etc/rc.local里配置开机启动功能http://tengine.taobao.org/)

    上面是下载的包下载地址 http://tengine.taobao.org/download_cn.html nginx官网http://nginx.org/ 下一步 下一步 其中remote为重要属 ...

  7. linux学习笔记-conky配置开机启动方法

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.常用桌面的配置方法 创建启动文件并加入以下配置 ~/.config/autostart/conky.desktop [Des ...

  8. SSH框架项目配置和启动的加载顺序及请求的执行顺序

    1:======配置和启动====== (1)配置web.xml 配置<context-param>,其中内容为Spring的配置文件applicationContext.xml.注意&l ...

  9. ubuntu系统自动配置开机启动脚本

    以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢  https://www.linuxidc.com/Linux/2017-09/1471 ...

随机推荐

  1. 分享一些比较好用的(免费)网站及推荐理由 SMARK

    分享一些比较好用的(免费)网站及推荐理由 --By SMARK 资源类 这里面是一些有供下载的资源的网站等 视频 片库 内容怎么样有待考证 蓝光网 看着还行, 打赏收入 预告片世界 还行, 收入有待考 ...

  2. CUMTCTF'2020 未完成 wp

    Web babysqli burp抓包,发现有 的过滤,用/**/过滤空格. 报错注入 payload username=admin&password='/**/or/**/extractva ...

  3. 2020我终于成功搭建了Metasploitable3靶机

    0x00前言 在学习metasploit时我们往往需要一个靶场,下面为大家介绍一下如何在虚拟机中安装metasploitable 3靶场.Metasploitable3是Metasploitable2 ...

  4. Matlab中fspecial的用法

    来源:https://blog.csdn.net/hustrains/article/details/9153553 Fspecial函数用于创建预定义的滤波算子,会与imfilter搭配使用,其语法 ...

  5. Python中list的合并

    ①差集 方法一: if __name__ == '__main__':     a_list = [{'a' : 1}, {'b' : 2}, {'c' : 3}, {'d' : 4}, {'e' : ...

  6. Recursive sequence (矩阵快速幂)2016ACM/ICPC亚洲区沈阳站

    题目 Farmer John likes to play mathematics games with his N cows. Recently, they are attracted by recu ...

  7. 为Android(和其他移动平台)安装MoSync

    为Android(和其他移动平台)安装MoSync Android教程比赛 这是我提交的文章#2:设置你的Android开发环境.它的主要区别在于它描述了如何安装MoSync,这是一种开发环境,它不是 ...

  8. 安装redis,phpstudy

    第一步: 先下载一下我分享自己的百度网盘里面的资料,网友们下载即可 链接:https://pan.baidu.com/s/1SVO-yAEqbFuvhiiI6Dm3VQ 提取码:u8t0 复制这段内容 ...

  9. golang不想http自动处理重定向的解决方案

    目录 前言 解决方案 结论 前言     有时候发送http请求不想让库自动帮忙处理重定向,库里面默认的是会把所有重定向都完成一遍,结果就是最后一个没有重定向的请求的结果.因此需要一种方案直接获取首次 ...

  10. 扫描仪扫描文件处理-Python批量处理

    多进程处理扫描出来的图片,参见: https://github.com/barrer/scan-helper bug问题反馈github提Issues