ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CentOS服务管理详解

2021-01-02 15:29:50  阅读:224  来源: 互联网

标签:httpd systemd 服务 配置文件 CentOS etc init systemctl 详解


一、学前须知

讲服务管理之前先了解下Linux的启动流程非常有必要,直观的先上CentOS的启动图:

Centos7

 

Centos6的也补充下:

wKiom1fVBELjXsvaAAUkuL83t2Q304.jpg

 

图片信息量较大,网友可根据自己的知识水平逐一按上图去填充自己,也欢迎指正;本节我们着重写系统服务管理,对启动流程仅做下面简要概述:(下节更新启动流程知识)

RHel6: 开机自检BIOS > MBR引导 > GRUB菜单 > 加载内核 > Init进程初始化

RHel7:开机自检BIOS > MBR引导 > GRUB2菜单 > 加载内核 >System进程初始化

 

此处我们关注最后一步的进程初始化程序sytem和Init.的区别

init: 

  • 一是启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程
  • 二是启动脚本复杂,Init进程只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本变得很长
  • 由Linux内核加载运行,位于 /sbin/init   ,是系统中第一个进程,PID永远为1

对于支持 service 的程序,安装的时候,会自动的在 /etc/init.d 目录添加一个配置文件。当我们使用 service 控制程序时,比如执行开启httpd的服务:service httpd  start  。那么我们的 service 就会开启 /etc/init.d/httpd 配置文件里面指向的 /usr/sbin/httpd 可执行文件

systemd:

  • 按需启动服务,减少系统资源消耗。
  • 尽可能并行启动进程,减少系统启动等待时间
  • 由Linx内核加载运行,位于 /usr/lib/systemd/systemd  ,是系统中第一个进程,PID永远为1        

对于支持 systemd 的程序,安装的时候,会自动的在 /usr/lib/systemd/system 目录添加一个配置文件。当我们使用 systemctl 控制该程序时,比如执行开启httpd服务:systemctl  start  httpd.service 。那么我们的 systemctl 就会开启 httpd.service 配置里面指向的 /usr/sbin/httpd 可执行文件

如果我们想让该程序开机启动,我们可以执行命令 systemctl enable  httpd,这个命令相当于在 /etc/systemd/system 目录添加一个软链接,指向 /usr/lib/systemd/system 目录下的 httpd.service 文件。这是因为开机时,Systemd只执行 /etc/systemd/system 目录里面的配置文件。

 

Init 进程的配置文件

参数

说明

/etc/init.d/

服务启动脚本配置文件存放目录

/etc/inittab

默认运行级别配置文件

/etc/init/rcS.conf

系统初始化配置文件

/etc/init/rc.conf

各运行级别初始化的配置文件

/etc/init/rcS-sulogin.conf

单用户模式启动 /sbin/sushell 环境的配置文件

/etc/init/control-alt-delete.conf

终端下的 ctrl+alt+del 热键操作的配置文件

/etc/sysconfig/init

tty终端的配置文件

/etc/init/start-ttys.conf

配置tty终端的开启数量、设备文件

/etc/init/tty.conf  或  /etc/init/serial.conf

控制tty终端的开启

Systemd进程的配置文件

参数

说明

/etc/systemd/system/default.target

取代/etc/inittab文件配置,通常符号链接到 /lib/systemd/system/graphical.target

/run/systemd/system/

系统执行过程中所产生的服务脚本所在目录

/etc/systemd/system/

里面存放着不同级别的开启自启服务 

/usr/lib/systemd/system/ 和 /lib/systemd/system/ 和,两个文件完全一样,因为lib是/usr/lib的软链接

每个服务最主要的启动脚本设置,类似于之前的 /etc/init.d/

运行级别和说明

运行级别

说明

Rehl 6/7 命令

Rhel7 命令

0

关机状态,使用该级别将会关机

init  0

 poweroff

1

系统救援模式,多用于系统维护

init  1

systemctl  isolate  rescue.target

2

字符界面的多用户模式(不可访问网络)

init  2

systemctl  isolate  mutil-user.target

3

字符界面的完整多用户模式,大多数服务器主机运行此级别

init  3

systemctl  isolate  mutil-user.target

4

未分配使用

init  4

systemctl  isolate  mutil-user.target

5

图形界面的多用户模式,提供了图形桌面操作环境

init  5

systemctl  isolate  graphical.target

6

重新启动主机

init  6

reboot

查看运行级别:

  • runlevel : 显示切换前的运行级别 和当前运行级别 (6/7)
  • systemctl get-default : 显示当前运行级别 (7)

永久设置开机模式

  •  systemctl set-default multi-user.target    开机默认为文本模式
  •  systemctl set-default graphical.target     开机默认为图形模式
  •  修改 /etc/inittab 默认运行级别配置文件(下节开机启动文章详解)
  •  

二、服务管理

有了以上的内容,再来看进程管理相信已经非常有底气了

Rhel6 用 service 和 chkconfig 来管理服务,它是 SystemV 架构下的一个工具。

Rhel7 是用 systemctl  来管理服务,它融合了之前的 service 和 chkconfig 的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。systemctl 是 systemd 架构下的一个工具。

动作

Rhel6 旧指令

Rhel7新指令

启动某服务

service  httpd   start

systemctl  start   httpd

停止某服务

service  httpd   stop 

systemctl  stop   httpd

重启某服务

service  httpd   restart

systemctl  restart  httpd

检查服务状态

service  httpd  status

systemctl  status  httpd

删除某服务 

chkconfig  --del  httpd

停掉应用,删除其配置文件

使服务开机自启动

chkconfig  --level   5  httpd   on

systemctl   enable  httpd

使服务开机不自启动

chkconfig  --level   5  httpd   off

systemctl   disable  httpd

显示所有已启动的服务

chkconfig  --list

systemctl list-unit-files | grep enabled

加入自定义服务

chkconfig  --add  test

systemctl   load  test

查询服务是否开机自启

chkconfig --list | grep httpd

systemctl  is-enabled   httpd

查看启动失败的服务

 

systemctl  --failed

systemd的一些常用命令:

列出所有可用单元 : systemctl  list-unit-files

列出所有运行的单元: systemctl list-unit-files | grep enabled 

列出所有可用服务:  systemctl list-unit-files  --type=service

列出所有运行的服务: systemctl list-unit-files  --type=service | grep enabled 

屏蔽httpd服务:systemctl  mask httpd

 

是的,明白原理后看服务管理就这么简单的几个指令,你Get到了吗?

 

标签:httpd,systemd,服务,配置文件,CentOS,etc,init,systemctl,详解
来源: https://blog.csdn.net/Cloud_YC_Wei/article/details/112095766

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有