Linux系统的服务——以Centos7为例

一、Linux系统的服务简介

        服务是向外部提供对应功能的进程,其运行在系统后台,能够7*24小时持续不断的提供外界随时发来的服务请求,且服务进程常驻在内存中,具有固定的端口号,通过端口号就能找到服务内容。

        提供服务的一端叫做服务端,向服务端发送请求内容的叫做客户端,具体的流程为:

1、首先服务器端启动服务进程,服务进程正常运行后会开放对应的固定端口号(比如80、8080、5000等端口);

2、然后客户端向服务端对应的(IP:服务端口)发起请求;

3、服务端所在主机的内核接收到客户发送来的请求数据包,系统内核会分析数据包内容(识别请求的端口号后,内核会对应到该该端口号对应的服务程序,系统内核会将客户端发送来的请求报文内容发送给对应的服务程序,服务程序收到报文后,就会与客户端建立连接处理对应的内容,并进行数据传输工作。

        在Linux中,服务分为【独立守护进程】和超【级守护进程(瞬时守护进程)】;独立守护进程是指(自行在后台实时监听客户端发送来的请求内容并进行处理,基本上所有的服务都是独立守护进程类的服务)。超级守护进程是专指xinetd这个服务,这个服务代为管理着一些特殊的系统服务,这类服务只有在被请求的时候才会由xinetd通知它启动对应服务,服务提供处理工作完成后就关闭服务,这类服务称为瞬时守护进程,即存在的时间非常短暂。

        简单的说【服务是类指那些在系统后台持续运行并提供基本功能,常驻内存中(如网络连接、SSH登录、日志管理等功能)的程序】。

二、Linux服务的常用操作_Centos7及其更高版本

2.1、列出Linux所有服务和状态

1、查看Linux系统中的所有服务

systemctl list-units --type service --all

2、查看Linux系统所有服务的开机自启动状态命令:

systemctl list-unit-files

3、查看所有已经激活的服务命令

systemctl list-units --type service

2.2、查看服务状态

        比如我这里查看httpd服务状态,其中状态(Active:active(running)表示已经启动运行中);Active:inactive(dead)表示停止): 

systemctl status 服务名称 

systemctl status 服务名称.service 

查看服务是否在运行中命令:

systemctl is-active 服务名称

2.3、启动服务

systemctl start 服务名称

        比如我这里重启httpd服务,且查看启动后的状态(Active:active(running)表示已经启动运行中):  

systemctl start 服务名称.service

2.4、停止服务

systemctl stop 服务名称

        比如我这里停止httpd服务,且查看停止后的状态(Active:inactive(dead)表示停止):  

systemctl stop 服务名称.service

2.5、重启服务

systemctl restart 服务名称

        比如我这里重启httpd服务,且查看重启后的状态(Active:active(running)表示已经启动运行中): 

 systemctl restart 服务名称.service

2.6、设置服务开机自启

systemctl enable 服务名称
systemctl enable 服务名称.service

任选这2个命令中的一个就可以;需要注意的是:设置服务开启自启后如果要验证的话,需要重启服务器后再查看服务状态为 (Active:active(running))即为设置服务开机自启成功。

如下是立即重启Linux服务器的命令: 

reboot -h now

查看服务是否开机自动启动(enabled表示已经启动) 

systemctl is-enabled 服务名称

2.7、禁用服务开机自启

systemctl disable httpd
systemctl disable 服务名称.service

任选这2个命令中的一个就可以;需要注意的是:禁用服务开启自启后如果要验证的话,需要重启服务器后再查看服务状态为 (Active:inactive(dead)表示停止)即为禁用服务开机自启成功。

 

三、服务的配置文件

        对于支持 systemd 的程序,在安装该软件的时候,会自动的在 【/usr/lib/systemd/system 】目录添加一个关于该程序的服务配置文件(比如:我使用【yum install httpd -y】安装了该程序,我们可以使用【cat /usr/lib/systemd/system/httpd.service】命令查看到该程序的服务配置文件内容),如下图所示:

在我们给httpd服务设置了开机自启【systemctl enable httpd】命令后,可以看到在【/etc/systemd/system/multi-user.target.wants/】 目录下添加了该程序的符号链接,这个链接指向【/usr/lib/systemd/system 】里面的【httpd.service】文件

在设置了服务的开机启动命令后,需要等下一次开机的时候,才会自动行 【/etc/systemd/system/】 目录中的文件服务;可以通过【systemctl is-enabled httpd】命令查看服务是否设置开机自动启动,如下图所示:

注意:【/etc/systemd/system/】是管理员根据需求建立的执行脚本,也可以理解为是【/usr/lib/systemd/system/】的连接映射。

3.1、systemctl

        在 Centos7 之前是使用 service 进行服务的管理,虽然service使用起来简单,但对于每一个服务,都需要我们人为手动的编写对应脚本文件来控制服务相关的启动、停止、重启等操作,服务控制得好坏,完全依赖于编写脚本的人,这样的话对于服务来说不是很稳定,对于管理服务的人员也不友好。

        为了解决service带来的服务不稳定,对管理服务人员不友好等问题,在 Centos7 中采用了新的【systemctl】服务管理工具,systemctl使用固定规范格式的脚本内容来控制服务的启动、停止等相关操作,使得服务的管理变得简单了很多(即:对服务的启动、停止、重启、开机自启等操作只需要一条命令就可实现)

 3.2、systemd

面向管理员的 systemd,第 III 部分 (0pointer.de)icon-default.png?t=N7T8https://0pointer.de/blog/projects/systemd-for-admins-3.htmlsystemd.unit (0pointer.de)icon-default.png?t=N7T8https://0pointer.de/public/systemd-man/systemd.unit.htmlsystemd.service (0pointer.de)icon-default.png?t=N7T8https://0pointer.de/public/systemd-man/systemd.service.html

systemd 基础知识简介 (suse.com)icon-default.png?t=N7T8https://documentation.suse.com/smart/systems-management/html/systemd-basics/index.html

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PB案例学习笔记】-27制作一个控制任务栏显示与隐藏的小程序

写在前面 这是PB案例学习笔记系列文章的第27篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

柯西施瓦茨不等式证明过程

柯西-施瓦茨不等式(Cauchy-Schwarz Inequality)是数学分析中的一个重要不等式,它在向量空间、内积空间等多个领域都有广泛应用。对于实数或复数域上的内积空间,柯西-施瓦茨不等式可以表述为: 对于任意向量 u \mathbf…

Android Gradle 开发与应用 (七): Gradle 插件开发与发布

目录 一、概述 二、Gradle插件的基础知识 2.1 Gradle插件的定义 2.2 Gradle插件的种类 2.3 Gradle插件的生命周期 三、开发一个Gradle插件 3.1 创建Gradle插件项目 3.2 编写插件实现 3.3 配置插件元数据 3.4 构建和测试插件 3.5 在项目中应用插件 四、发布Gradle插…

计算机未来大方向的选择

选专业要了解自己的兴趣所在。 即想要学习什么样的专业,如果有明确的专业意向,就可以有针对性地选择那些专业实力较强的院校。 2.如果没有明确的专业意向,可以优先考虑一下院校。 确定一下自己想要选择综合性院校还是理工类院校或是像财经或者…

C语言结构体的相关知识

前言 从0开始记录我的学习历程,我会尽我所能,写出最最大白话的文章,希望能够帮到你,谢谢。 1.结构体类型的概念及定义 1.1、概念: 结构体是一种构造类型的数据结构, 是一种或多种基本类型或构造类型的数…

springboot集成gzip和zip数据压缩传输-满足2k数据自动压缩(适用大数据信息传输)

文章目录 1)、springboot的gzip压缩-满足2k数据自动压缩1.1后端压缩1.2前端解压1.3 满足最小响应大小(2KB)和指定MIME类型的响应进行GZIP压缩yml配置自定义配置或者使用Java配置 2)、gzip压缩1.1接口使用-数据压缩发送前端1.2 接口…

Java面试题系列 - 第3天

题目:Java集合框架详解与高效使用策略 背景说明:Java集合框架是Java标准库的重要组成部分,提供了一系列容器类,如List、Set、Map等,用于存储和操作集合数据。熟练掌握集合框架的使用,对于编写高效、健壮的…

机器学习之神经网络

简介 神经网络(Neural Network)是一种模仿人类大脑的机器学习算法,由一系列相互连接的神经元组成。它能够自动学习数据的特征和规律,并对新的输入数据进行预测和分类。 神经网络作为一种模仿生物大脑机制的机器学习算法,其产生和发展主要源于以下几个方面的背景: 对人脑认知…

第11章 规划过程组(二)(11.8排列活动顺序)

第11章 规划过程组(二)11.8排列活动顺序,在第三版教材第390~391页; 文字图片音频方式 第一个知识点:主要工具与技术(重要知识点) 1、箭线图法(ADM) (双代号网络图或活动箭线图&am…

template配置项详情——03

<body> // vue.config是vue全局配置对象 // productionTip 属性可能设置是否生产提示信息 //默认值是&#xff1a;true,如果是false 则表示组织生产提示信息 vue.congfig.productionTip false //指定挂载位置 //注意&#xff1a;以下代码只有vue框架能够看懂的代码。…

windows USB 设备驱动开发- 不同模型下的控制传输

在不同的模型下&#xff0c;USB控制传输会有不同的特点&#xff0c;但是任何控制传输的目标都始终是默认端点。 接收者是设备的实体&#xff0c;其信息&#xff08;描述符、状态等&#xff09;是主机感兴趣的。请求可进一步分为&#xff1a;配置请求、功能请求和状态请求。 发…

leetcode力扣_双指针问题

141. 环形链表 思路&#xff1a;判断链表中是否有环是经典的算法问题之一。常见的解决方案有多种&#xff0c;其中最经典、有效的一种方法是使用 快慢指针&#xff08;Floyd’s Cycle-Finding Algorithm&#xff09;。 初始化两个指针&#xff1a;一个快指针&#xff08;fast&…

uni-app 使用Pinia进行全局状态管理并持久化数据

1.引言 最近在学习移动端的开发&#xff0c;使用uni-app前端应用框架&#xff0c;通过学习B站的视频以及找了一个开发模板&#xff0c;终于是有了一些心得体会。 B站视频1&#xff1a;Day1-01-uni-app小兔鲜儿导学视频_哔哩哔哩_bilibili B站视频2&#xff1a;01-课程和uni的…

JavaScript——for in类型

目录 任务描述 相关知识 for in型 编程要求 任务描述 苹果apple有多个属性表示它的产地&#xff0c;比如locationProvince表示省份&#xff0c;这些属性都以location开头&#xff0c;和产地无关的属性都不以location开头。 本关任务&#xff1a;完成一个计算苹果产地的函数…

[FFmpeg] windows下安装带gpu加速的ffmpeg

1.显卡能力排查 目前只有 NIVIDIA 支持 ffmpeg 的 gpu加速(AMD貌似也陆续开始支持)。 在下述网站中查找自己的显卡能够支持的编解码格式。https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-newhttps://developer.nvidia.com/video-encode-and-decod…

Vue88-Vuex中的mapActions、mapMutations

一、mapMutations的调用 此时结果不对&#xff0c;因为&#xff1a;若是点击事件不传值&#xff0c;默认传的是event&#xff01;&#xff0c;所以&#xff0c;修改如下&#xff1a; 解决方式1&#xff1a; 解决方式2&#xff1a; 不推荐&#xff0c;写法麻烦&#xff01; 1-…

【Unity数据交互】二进制私

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 专栏交流&#x1f9e7;&…

Bootstrap 5 小工具

Bootstrap 5 小工具 Bootstrap 5 是一个流行的前端框架,它提供了一系列的工具和组件,帮助开发者快速构建响应式和移动优先的网页。在本文中,我们将探讨 Bootstrap 5 中的一些实用小工具,这些工具可以极大地提高开发效率和用户体验。 1. 网格系统 Bootstrap 5 的网格系统…

Laravel 宏指令(Macro)动态添加自定义方法到Laravel的核心组件中

Laravel 宏指令&#xff08;Macro&#xff09; 在Laravel中&#xff0c;宏指令&#xff08;Macro&#xff09;是一种灵活的方式&#xff0c;允许您动态添加自定义方法到Laravel的核心组件中&#xff0c;如模型、查询构建器、集合等&#xff0c;以便在不改变核心代码的情况下扩展…

电脑硬盘分区的基本步骤(2个实用的硬盘分区方法)

在现代计算机中&#xff0c;硬盘分区是非常重要的一步。无论是新硬盘的初始化&#xff0c;还是重新组织现有硬盘&#xff0c;分区都是必不可少的操作。本文将详细介绍电脑硬盘分区的基本步骤&#xff0c;帮助您更好地管理和利用硬盘空间。 文章开始&#xff0c;我们先简单说一…