首页 > 系统相关 >【10.0】Linux之系统服务

【10.0】Linux之系统服务

时间:2023-08-22 10:12:59浏览次数:47  
标签:10.0 systemd 服务 target service 启动 systemctl Linux

【一】Linux启动流程

CentOS6启动级别

CentOS6 VS Centos7开机启动流程图解

【二】Linux运行级别

【1】什么是运行级别

  • 运行级别就是操作系统当前正在运行的功能级别
System V init运行级别 systemd目标名称 作用
0 runlevel0.target, poweroff.target 关机
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, graphical.target 多用户的图形界面
6 runlevel6.target, reboot.target 重启

【2】如何调整系统启动的运行级别?

  • systemd使用’targets’而不是runlevels。

  • 默认情况下,有两个主要目标:

    • multi-user.target:类似于运行级别3

    • graphical.target: 类似于运行级别5

1.查看系统默认运行级别

# ls /usr/lib/systemd/system/runlevel*
[root@student ~]# runlevel(6,7通用)
[root@student ~]# systemctl get-default

2.要设置默认目标,请运行

[root@student ~]# systemctl set-default graphical.target # 切换图形界面
[root@student ~]# systemctl set-default multi-user.target # 切换命令界面

【三】Linux systemd

【1】systemd的由来

  • Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
    • 1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
    • 2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。
  • Centos5 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
  • Centos6 相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
  • Centos7 所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)

【2】什么是systemd

  • systemd即为system daemon守护进程
  • systemd主要解决上文的问题而诞生
  • systemd的目标是,为系统的启动和管理提供一套完整的解决方案。

【3】systemd的优势

  • 1、最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)
  • 2、Centos7支持开机并行启动服务,显著提高开机启动效率。
  • 3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。
  • 4、Centos7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
  • 5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

【4】systemd相关配置文件

  • /usr/lib/systemd/system/
    • 类似Centos6系统的启动脚本,/etc/init.d/
  • /etc/systemd/system/
    • 类似Centos6系统的/etc/rc.d/rcN.d/
  • /etc/systemd/system/multi-user.target.wants/
    • 开机要启动的程序

【5】systemd管理服务相关命令

(1)管理服务的启动、重启、停止、重载、查看状态

  • systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
systemctl命令 作用
systemctl start crond.service 启动服务
systemctl stop crond.service 停止服务
systemctl restart crond.service 重启服务
systemctl reload crond.service 重新加载配置
systemctl status crond.servre 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.servre 禁止服务运行
systemctl unmask crond.servre 取消禁止服务运行
systemctl cat vsftpd 查看启动文件

(2)查看此守护进程

  • 当我们使用systemctl启动一个守护进程后,可以通过sysytemctl status查看此守护进程的状态
状态 描述
loaded 服务单元的配置文件已经被处理
active(running) 服务持续运行
active(exited) 服务成功完成一次的配置
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务开机不启动,但可以被其他服务调用启动

(3)设置服务开机启动、不启动、查看各级别下服务启动状态

  • systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
systemctl命令(7系统) 作用
systemctl enable crond.service 开机自动启动
systemctl disable crond.service 开机不自动启动
systemctl list-unit-files 查看各个级别下服务的启动与禁用
systemctl is-enabled crond.service 查看特定服务是否为开机自启动
systemctl daemon-reload 创建新服务文件需要重载变更

(4)使用 systemctl 命令来管理服务器启动与停止

  • CentOS7系统, 管理员可以使用 systemctl 命令来管理服务器启动与停止
#关机相关命令
systemctl poweroff      #立即关机,常用
#重启相关命令
systemctl reboot        #重启命令,常用

(5)systemctl的journalctl日志

journalctl -n 20    #查看最后20行
journalctl -f       #动态查看日志
journalctl -p err   #查看日志的级别
journalctl -u crond #查看某个服务的单元的日志
# journalctl -xe
# systemctl status nginx -l

(6)systemcltl 其他

1 centos6 中启动服务,centos7启动服务

/etc/init.d/network restart
service network restart  #(只会干掉父进程,不会关掉子进程)
# centos7启动服务
systemctl restart network # 所有服务都放在/usr/lib/systemd/system/ 

2 制作系统服务(nginx为例)

  • /usr/lib/systemd/system/vsftpd.service
[Unit]
Description=Vsftpd ftp daemon # 描述
After=network.target          # 在XX后启动

[Service]
Type=forking                  # 程序后台运行
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf # 命令
# ExecStartPre 启动之前执行
# ExecStop 停止
# ExecRestart 重启
# ExecReload 重新加载
[Install]
WantedBy=multi-user.target  # 在哪个运行级别下

3 制作系统服务

cd /usr/lib/systemd/system/
vim mynginx.service
[Unit]
Description=my nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecRestart=/usr/local/nginx/sbin/nginx -s restart
ExecReload=/usr/local/nginx/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target  # 在哪个运行级别下
# chmod 754 mynginx.service
# systemctl start mynginx          # 启动nginx
# systemctl enable mynginx.service # 开机启动
# systemctl status mynginx.service # 查看是否成功
# systemctl disable mynginx.service # 取消开机启动

【四】Linux单用户模式

  • 如何使用单用户模式进行变更系统密码?
  • 以Centos7系统为例:(Centos6破解方式请自行百度)

第1步:重启Linux系统主机

  • 重启Linux系统主机并出现引导界面时
  • 按下键盘上的e键进入内核编辑界面

第2步:添加enforcing=0 init=/bin/bash

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

第3步:使用新密码来登录Linux系统

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

【五】Linux下救援模式

场景一:当系统坏了,无法登陆系统,但需要把里面的数据复制出来,怎么办?

步骤一、先挂载光盘,然后选择光盘引导为第一位

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

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

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

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

[root@m01 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446

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

步骤二[方法二]、修复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

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

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

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

标签:10.0,systemd,服务,target,service,启动,systemctl,Linux
From: https://www.cnblogs.com/dream-ze/p/17647803.html

相关文章

  • 【11.0】Linux之进程管理
    【一】介绍【1】什么是进程比如:开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程。总结一句话就是:当我们运行一个程序,那么我们将运行的程序叫进程。PS1:当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限。PS2:在进程运行的过程中,系......
  • 【12.0】Linux之计划任务
    【一】计划任务基本概述【1】什么是crondcrond就是计划任务,类似于我们平时生活中的闹钟。定点执行。【2】为什么要使用crondcrond主要是做一些周期性的任务,比如:凌晨3点定时备份数据。比如:11点开启网站抢购接口,12点关闭网站抢购接口。【3】计划任务主要分为以下两种使用......
  • 【3.0】Linux之网络
    【一】网络相关名字【1】子网掩码子网掩码是用于确定IP地址中网络部分和主机部分的标识符。它是一个32位的二进制数字,与IP地址进行按位与运算,用以划分IP地址的网络号和主机号。子网掩码中的1表示对应位置是网络号,而0表示对应位置是主机号。子网掩码的主要作用是用来确定局域......
  • 【2.0】Linux初识
    【一】虚拟环境搭建详解虚拟环境搭建是一种在计算机上创建和模拟多个独立操作系统实例的技术,从而使得一个物理计算机能够同时运行多个虚拟的操作系统环境。这种技术可以提供更好的资源利用、隔离性、灵活性和可移植性。【1】KVM(Kernel-basedVirtualMachine)KVM是一个基于......
  • 【1.0】Linux引入
    【一】什么是操作系统OperatingSystem(操作系统)简称OSWindows,MacOS,Linux都是操作系统操作系统(OperatingSystem)是计算机系统中的核心软件,它管理并控制计算机硬件和软件资源,为用户和应用程序提供统一的接口和环境。操作系统负责调度任务、分配内存、管理文件系统、提供......
  • CSharp在Linux上使用Tesseract-OCR
    CSharp在Linux上使用Tesseract-OCR 1主要思路在Linux环境中使用ASP.NETCore调用TesseractOCR引擎可以按照以下步骤进行操作: 1确保你已经在Linux上安装和配置了TesseractOCR引擎。2在你的ASP.NETCore项目中,使用NuGet包管理器或dotnet命令行工具将Tesseract包添加......
  • uniapp保存服务器端sessionID方案
    我们知道,uniapp,小程序都不支持cookie,那么每次调用服务端api接口时,服务端提供的Set-Cookie无法自动保存,导致每次都请求都是一个新sessionID,无法完成一些正常的校验,想要解决这个问题,可以让uniapp首次加载请求时保存服务器传过来的sessionID,在之后的请求中都在header中携带着这个coo......
  • Service(服务)
    目录k8s的三层网络修改service命令方式修改servicecore-api-service.ymalk8s的三层网络宿主机网络物理主机网络。svc集群网络clusterIp集群网络,集群内部服务可以相互访问,集群外部不能访问集群内的服务。可以升级为NodePort方式,映射podIp:podPort到宿主机的IP和端口,这样......
  • linux 单网卡双IP设置
    [root@xinyin-redis-mq-1~]#vim/etc/sysconfig/network-scripts/ifcfg-ens192TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT=......
  • linux那些事之页迁移(page migratiom)
    Pagemigration页迁移技术是内核中内存管理的一种比较重要的技术,最早该技术诞生于NUMA系统中(Pagemigration[LWN.net]),后续由于内存规整以及CMA和COW技术的出现,也需要用到页迁移技术,逐渐称为内核内存子系统中占有比较重要地位。页迁移在NUMA系统中的应用NUMA系统中,每个cpu运行......