day23--系统服务

今日内容

1.系统服务

1.开机启动流程

  • centos6


    image.png
  • centos7


    image.png

2.centos6与centos7区别

image.png

3.系统的运行级别

1.centos6

  • 0 关机
  • 1 单用户模式(超级权限 必须面对实体硬件)
  • 2 暂未使用
  • 3字符界面
  • 4 暂未使用
  • 5 图形界面
  • 6 重启
  • 0 6 关机重启
  • 3 5 字符 图形
  • 2 4 没有使用
# 临时性的操作
 [root@oldboy ~]# runlevel   #查看级别 N 3    #N 表示上一次是什么级别    #3 当前系统正在运行的级别 [root@oldboy ~]# init 3    #切换到3级别上
#永久操作 
[root@oldboy ~]#  /etc/inittab

2.centos7

  • 0 关机
  • 1 单用户模式
  • 2 暂未使用
  • 3字符界面
  • 4 暂未使用
  • 5 图形界面
  • 6 重启
  • 0 6 关机重启
  • 3 5 字符 图形
  • 2 4 没有使用
    3.什么是运行级别
    运行级别就是操作系统当前正在运行的功能级别
system V init运行级别 systemd目标名称 作用
0 runlevel0.target,poweroff.tar.get 关机
1 runlevel1.target,rescue.target 单用户模式
2 runlevel2.target,multi-user.target
3 runlevel3.target,multi-user.target 多用户的文本界面
4 runlevel4.target,multi-user.target
5 runlevel5.target,garphical.target 多用户的图形界面
6 runlevel2.target,reboot.target 重启
#查看当前的运行级别
 [root@oldboy ~]# systemctl get-default  multi-user.target
#修改系统下次启动时候的运行级别 
[root@oldboy ~]# systemctl set-default multiuser.target

4.linux systemd

  • 1.systemd的由来
    Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
    1.启动时间长,init进程是串行启动,只有前一个进程启动完,才会启动下一个进程.
    2.启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂.
  • centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系.
  • centos6 相对启动速度有所改进.有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动.
  • centos7素有进程无论有无依赖关系则都是并行启动.


    image.png
  • 2.什么是systemd
    systemd即为system daemon守护进程,systemd主要解决上文的问题而诞生,systemd的目标是为系统启动和管理提供一套完整的解决方案.
  • 3.systemd的优势
    1.最新系统都采用systemd管理
    2.centos7支持开机并行启动 服务,显著提高开机启动效率.
    3.centos7 关机只关闭正在运行的服务,而centos6 全部都关闭一次.
    4.centos7服务的启动与停止不在使用脚本管理,也就是/etc/init.d下不再有脚本
    5.centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程.
  • 3.systemd相关配置文件
    /usr/lib/systemd/system #类似centos系统的启动脚本,/etc/init.d
    /etc/systemd/system #类似centos6系统的/etc/rc.d/rcN.d/
    /etc/systemd/system.multi-user.target.wants/
  • 4.systemd管理服务相关命令
    systemctl管理服务的启动,重启,停止,重载,查看状态等常用命令
systemctl命令 作用
systemctl start crond.service 启动服务
systemctl stop crond.service 停止服务
systemctl restart crond.service 重启服务
systemctl reload crond.service 重新加载配置
systemctl status crond.service 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.service 禁止服务运行
systemctl umask crond.service 取消禁止服务运行
systemctl start nginx 
systemctl stop nginx 
systemctl restart nginx 
systemctl reload nginx 
systemclt status nginx
systemctl enable nginx      #下一次开机启动nginx,于当前无关 
systemctl disable nginx     #下一次开机不启动nginx,于当前无 关

当我们使用systemctl启动一个守护进程后,可以通过systemctl status 查看此守护进程的状态
systemctl设置服务开机启动,不启动,查看各级别下服务启动状态等常用命令

systemctl命令 作用
systemctl enable crond.service 开机自启动
systemctl disable crond.service 开机不自启动
systemctl list-unit-files 查看各个级别下服务的启动与禁用
systemctl is-enableed crond.service 查看特定服务是否为开机自启动
systemctl daemon-reload 创建新服务文件需要重载变更

centos7 系统,管理员可以使用systemctl命令来管理服务器启动与停止

#关机相关命令
systemctl poweroff ##立即关机,常用
#重启相关命令
systemctl reboot #重启命令,常用
状态 描述
loaded 服务单元的配置文件已经被处理
active(running) 服务持续运行
active(exited) 服务成功完成一次的配置
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务开机不启动,但可以被其他服务调用启动
[root@oldboy ~]# #关机      shutdown -h now       
poweroff      
halt     
init 0    
systemctl poweroff 
[root@oldboy ~]# #重启      
reboot      
shutdown -r now      
init 6    
systemctl reboot

5.单用户模式 超级权限 必须面对实体硬件

  • 能正常引导进入系统

  • 配置文件错误导致无法启动

  • 忘记ROOT密码
    进入单用户模式步骤:
    1.重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面


    image.png

    2.在linux16这行的后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序


    image.png

    3.第3步:大约5秒过后,进入到系统的单用户模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了。命令行执行效果如图所示。
    image.png

6.救援模式 系统无法正常进入比如没有内核 grub被修改 系统崩溃

  • 没有内核文件,只能使用救援模式进入
  • 系统崩溃,要保留重要的数据的时候
  • grub菜单出现问题
    场景一:当系统坏了,无法登陆系统,但需要把里面的数据复制出来,怎么办?
    步骤一、先挂载光盘,然后选择光盘引导为第一位


    image.png

    步骤二、进入故障排除模式-->然后选择救援模式


    image.png

    image.png

    步骤三、挂载真实系统后,发现数据都还存在
    image.png

    场景二、修复MBR,主要出现在安装双系统时,后安装的系统把原来系统的MBR删除了,需要修复。

    步骤一、破坏硬盘的前446字节,模拟MBR引号损坏,会发现重启无法启动系统

[root@oldboy ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446
image.png

步骤二、重启系统,然后按照之前的操作进入救援模式,然后分配一个shell终端,挂载真实的操作系统进行修复


image.png

步骤三、修复MBR引导,然后重启连接服务器

#1.使用grub修复
# grub2-install /dev/sda

#2.然后退出
# exit

#3.最后重启进入系统
# reboot

场景三、Centos7误删除grub文件如何进行修复。
步骤一、模拟误删故障

#1.删除grub2 
[root@m01 ~]# rm -rf  /boot/grub2 
#2.重启计算机 
[root@m01 ~]# reboot 
image.png

步骤二、重启系统,然后按照之前的操作进入救援模式,然后分配一个shell终端,挂载真实的操作系统进行修复


image.png

步骤三、使用grub2-install /dev/sda、grub2-mkconfig恢复配置文件


image.png

image.png

PS:最后别忘记修改 BIOS 引导,让硬盘回归到第一引导

你可能感兴趣的:(day23--系统服务)