当前位置: 首页 > news >正文

Centos7 服务管理

注:从Centos7开始systemd代替了init,使用systemd机制来管理服务

优势:

  1. 并行处理所有服务,加速开机流程
  2. 命令相对简单:所有操作均有systemctl命令来执行
  3. 服务依赖性检测:systemctl命令启动服务时会自动启动依赖服务

一、systemd的配置文件位置

  • /usr/lib/systemd/system/:服务启动脚本存放位置
  • /run/systemd/system/:系统执行过程中产生的服务脚本
  • /etc/systemd/system/:管理员根据自己主机系统需求所创建的执行脚本

注:以sshd服务为例,关闭开机自启动就相当于移除sshd.service文件,设置开机自启动就相当于创建sshd.service文件的软链接

二、systemctl管理服务

注:基本上服务管理命令都是通过systemctl命令来完成的

systemctl:管理服务状态,开机自启动等

格式:systemctl  [选项]  服务守护进程名称

选项:

  • start:启动服务。
  • stop:停止服务。
  • restart:重启。
  • reload:不关闭服务的情况下,重新读取服务配置文件。
  • status:查看指定服务状态。
  • enable:开机启动。
  • disable:开机不启动。
  • is-enabled:查看指定服务是否为开机启动。enable 启动/disable 不启动。

常见后缀:

  • .service:用来启动和控制守护进程和进程的服务单元
  • .target:执行环境类型,也就是启动流程中的multi-user.target和graphical.target

三、查看系统上所有服务

命令:systemctl

选项:

  • list-units:显示当前的unit,添加--all选项则列出启动和未启动的所有unit
  • list-unit-files:显示/usr/lib/systemd/system/的unit启用状态
  • UNIT:单元名称或服务名称
  • LOAD:表示单元是否正确加载
  • ACTIVE:表示高级单元激活状态
  • SUB:低级单元激活状态,取值决定于单元类型
  • DESCRIPTION:简要描述信息

实验

步骤一:显示各种单元,如服务单元、挂载单元、定时计划单元等

步骤二:查看服务单元相对应的状态,可以先安装at服务,然后关闭开机启动,重启服务查看文件

第二列是当前用户设置的是否开机自启动,第三列是系统默认设置

、切换操作环境

  1. graphical.target:图形化界面
  2. multi-user.target:命令行模式
  3. rescue.target:救援模式
  4. emergency.target:紧急处理系统的错误,仅限root用户。再无法使用rescue.target 的情况下可以尝试使用此模式
  5. poweroff.target:关机
  6. reboot.target:重启

实验

步骤一:切换到命令行模式

步骤二:切换回图形化界面

补充

相较于init命令切换操作环境,init命令显然要更加简单,但如果出现了init 3和5命令失效的情况,可以使用graphical.target和multi-user.target来切换操作环境

五、使用systemctl管理源码包nginx

步骤一:首先安装好nginx,然后启动服务,查看监听80端口

步骤二:查看/usr/lib/systemd/system/sshd.service文件,确定其他服务的配置文件是如何编辑的,仿照编辑nginx配置文件,使得systemctl命令可以找到该文件

步骤三:重载配置文件,然后查看nginx的进程状态,发现未开启,但实际上nginx服务已经通过本地执行文件运行,只是没有被systemctl所记录

步骤四:关闭nginx服务,然后使用systemctl命令重新启动,再查看nginx进程状态

现在nginx服务可以被systemctl命令所调用

步骤五:再将服务设置为开启自启动,发现同样没有什么问题,实验结束

补充:设置开机自启动命令的配置文件/etc/rc.d/rc.local, 只要为这个文件设置可执行权限,在这个文件里写入的命令都会在开机的时候自动执行

http://www.lryc.cn/news/622261.html

相关文章:

  • SpatialVLM和SpatialRGPT论文解读
  • ChatGPT-5(GPT-5)全面解析:一场从通用智能迈向专属智能的进化风暴,正在重塑人类与机器的协作边界
  • C#---StopWatch类
  • 【JAVA高级】实现word转pdf 实现,源码概述。深坑总结
  • 用matlab实现的svdd算法
  • 数据库(3)
  • Java学习day_12之面向对象进阶(抽象类接口内部类)
  • 【Golang】:流程控制语句
  • Java 正则表达式的使用方法
  • 开源长期记忆 短期记忆 框架调研对比19999字
  • 如何写好大模型的提示词prompt
  • 第40周——GAN入门
  • 【新手入门】Android基础知识(一):系统架构
  • 打靶日常-sql注入(手工+sqlmap)
  • 【Java EE进阶 --- SpringBoot】初识Spring(创建SpringBoot项目)
  • 本地生活|MallBook 分账赋能浙江本地生活服务平台,助力实现资金流转效率与合规性的双提升!
  • 一个集成多源威胁情报的聚合平台,提供实时威胁情报查询和播报服务、主动拦截威胁IP,集成AI等多项常用安全类工具
  • 超级云 APP 模式:重构移动互联网生态的新引擎
  • 高频量化详解,速度和程序化的满足!
  • QT|windwos桌面端应用程序开发,当连接多个显示器的时候,如何获取屏幕编号?
  • Storage.AI解读:构建AI数据基础设施的开放标准
  • 【nginx】如何在本地代理外部链接
  • 《探秘浏览器Web Bluetooth API设备发现流程》
  • Web 安全之 Cookie Bomb 攻击详解
  • 前端动画库之gsap
  • 【Python】一些PEP提案(六):元类、默认 UTF-8、Web 开发
  • 【LeetCode 热题 100】55. 跳跃游戏
  • 开源数据发现平台:Amundsen Frontend Service 应用程序配置
  • Cursor 分析 bug 记录
  • 基于RobustVideoMatting(RVM)进行视频人像分割(torch、onnx版本)