标签:httpd systemd 服务 配置文件 CentOS etc init systemctl 详解
一、学前须知
讲服务管理之前先了解下Linux的启动流程非常有必要,直观的先上CentOS的启动图:
Centos7
Centos6的也补充下:
图片信息量较大,网友可根据自己的知识水平逐一按上图去填充自己,也欢迎指正;本节我们着重写系统服务管理,对启动流程仅做下面简要概述:(下节更新启动流程知识)
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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。