《Linux从小白到高手》理论篇:Linux的系统服务管理

值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。本篇详细深入介绍Linux的系统服务管理。
系统服务通常在系统启动时自动启动,并在后台持续运行,为系统和用户提供特定的功能。例如,网络服务、打印服务、数据库服务等。系统服务可以由系统管理员进行管理,包括启动、停止、重启和配置。
在这里插入图片描述

1.Linux系统服务的分类

1、按功能分类
网络服务:
负责网络通信和连接管理。例如:
sshd(Secure Shell 服务):允许远程用户通过 SSH 协议安全地登录到系统进行管理和操作。
httpd(Apache HTTP Server)或nginx:Web 服务器,用于托管网站和提供网页服务。
dhcpd(Dynamic Host Configuration Protocol daemon):动态分配 IP 地址等网络配置信息给客户端。
打印服务:
管理打印机和打印任务。例如:
cups(Common Unix Printing System):提供打印服务,包括打印机的配置、打印队列管理等。
数据库服务:
存储和管理数据。例如:
mysql或postgresql:关系型数据库服务器,为应用程序提供数据存储和查询功能。
文件共享服务:
允许用户在网络上共享文件。例如:
samba:实现与 Windows 系统的文件和打印机共享。
nfs(Network File System):在 Linux 和 Unix 系统之间共享文件。
系统监控服务:
监控系统的性能和状态。例如:
nagios或zabbix:可以监控服务器的各种指标,如 CPU 使用率、内存使用情况、磁盘空间等,并在出现问题时发出警报。
邮件服务:
负责发送和接收电子邮件。例如:
postfix或sendmail:邮件传输代理,用于发送和接收邮件。
dovecot:邮件存储和检索服务器。
2、按启动方式分类
系统启动时自动启动的服务:
这些服务通常是系统正常运行所必需的,或者是为了提供一些基本的功能而在系统启动时自动启动。例如,网络服务、系统日志服务等。
可以通过systemctl或chkconfig等工具来管理这些服务的自动启动状态。
按需启动的服务:
这些服务只有在需要时才会被启动,例如当用户请求特定的功能或应用程序需要特定的服务时。例如,打印服务只有在用户发送打印任务时才会启动。
可以通过手动启动这些服务,或者通过应用程序的请求来启动它们。
3、按运行级别分类
不同的运行级别对应不同的服务集合:
Linux 系统有多个运行级别,如 0(关机)、1(单用户模式)、2(多用户模式,无网络)、3(多用户模式,有网络)、4(用户自定义)、5(图形界面多用户模式)、6(重启)。
在不同的运行级别下,系统启动的服务会有所不同。例如,在单用户模式下,只有最基本的服务会启动,而在图形界面多用户模式下,会启动更多的服务,包括图形界面相关的服务。

2.Linux系统服务的管理工具

1、systemctl
功能:
systemctl是 Systemd 的主要命令行工具,用于管理系统服务、系统状态和系统资源等。它提供了一种统一的方式来管理不同类型的系统服务,包括启动、停止、重启、查看状态、设置服务的自动启动等功能。
常见用法:
启动服务:

systemctl start service_name

例如,启动 Apache HTTP Server 服务可以使用systemctl start httpd。
停止服务:

systemctl stop service_name

重启服务:

systemctl restart service_name

查看服务状态:

systemctl status service_name

这将显示服务的当前状态、启动时间、日志信息等。
使服务在系统启动时自动启动:

systemctl enable service_name

禁止服务在系统启动时自动启动:

systemctl disable service_name

2、service
功能:
在一些旧版本的 Linux 系统中,service命令用于管理系统服务。它可以启动、停止、重启服务,并查看服务的状态。
常见用法:
启动服务:

service service_name start

停止服务:

service service_name stop

重启服务:

service service_name restart

查看服务状态:

service service_name status

3、chkconfig
功能:
chkconfig主要用于在基于 SysV init 的系统中管理服务的启动级别。它可以设置服务在不同的运行级别下是否自动启动。
常见用法:
查看服务在不同运行级别下的启动状态:

chkconfig --list service_name

设置服务在特定运行级别下自动启动:

chkconfig --level runlevel service_name on

例如,设置服务在运行级别 3 和 5 下自动启动可以使用chkconfig --level 35 service_name on。
设置服务在特定运行级别下不自动启动:

chkconfig --level runlevel service_name off

4、journalctl
功能:
journalctl虽然不是直接用于管理服务,但journalctl是一个用于查看系统日志的工具。在管理系统服务时,它可以帮助查看服务的日志信息,以便进行故障排除和性能分析。
常见用法:
查看特定服务的日志:

journalctl -u service_name

例如,查看 Apache HTTP Server 的日志可以使用journalctl -u httpd。
按照时间顺序查看日志:

journalctl --reverse

查看特定时间段的日志:

journalctl --since "YYYY-MM-DD HH:MM:SS" --until "YYYY-MM-DD HH:MM:SS"

3.配置系统服务

1、各类服务的配置文件
不同的系统服务有不同的配置文件,这些配置文件通常位于/etc目录下。例如:
–Apache HTTP Server(通常是httpd服务)的主要配置文件可能是/etc/httpd/conf/httpd.conf。它包含了服务器的各种设置,如监听的端口、虚拟主机配置、模块加载等。
–MySQL 数据库服务器的配置文件可能是/etc/my.cnf。其中可以设置数据库的存储引擎、缓存大小、字符集等参数。
2、编辑配置文件
使用文本编辑器打开配置文件:
可以使用命令行编辑器如vi、nano或图形界面的文本编辑器(如果在有图形界面的环境中)。例如,使用nano打开 Apache 的配置文件可以执行nano /etc/httpd/conf/httpd.conf。
理解配置选项:
配置文件中通常包含注释,解释各个选项的作用。在编辑配置文件之前,最好先阅读这些注释,了解每个选项的含义和可能的取值范围。
修改配置选项:
根据需要修改相应的配置选项。例如,在 Apache 的配置文件中,可以修改监听的端口号、添加虚拟主机配置等。
保存并退出:
在完成编辑后,保存修改并退出文本编辑器。在nano中,可以使用快捷键Ctrl + X,然后按Y确认保存并退出。
3、检查配置文件语法
对于一些服务,有专门的工具来检查配置文件的语法是否正确。例如:
Apache HTTP Server 可以使用httpd -t命令来检查配置文件的语法。如果配置文件没有语法错误,会显示 “Syntax OK”。
MySQL 可以使用

mysqld --help --verbose | grep -A 1 "Default options"

来查看默认的配置选项,并确保配置文件中的设置是有效的。
4、重启服务使配置生效
在修改了系统服务的配置文件后,通常需要重启服务才能使新的配置生效。可以使用以下命令来重启服务:
使用systemctl:

systemctl restart service_name

例如,重启 Apache 服务可以使用systemctl restart httpd。
使用service(在一些旧版本的 Linux 系统中):

service service_name restart

5、监控服务状态
在配置服务后,应该监控服务的状态,以确保配置正确并且服务正常运行。可以使用以下命令来查看服务的状态:

systemctl status service_name:

显示服务的当前状态、启动时间、日志信息等。
查看服务的日志文件:不同的服务通常将日志记录到特定的文件中。例如,Apache 的日志文件位于/var/log/httpd目录下。可以使用命令如tail -f /var/log/service_name.log来实时查看服务的日志输出,以便及时发现问题。

4.系统服务的日志管理

系统服务的日志对于故障排除、性能分析和安全审计至关重要。
1、日志的位置
通常情况下,系统服务的日志文件位于/var/log目录下。不同的服务可能有不同的子目录或特定的日志文件名称。例如:
Apache HTTP Server 的日志文件可能在/var/log/httpd目录中,包括访问日志(通常是 access_log 文件)和错误日志(通常是 error_log 文件)。
MySQL 数据库服务器的日志文件可能在/var/log/mysql目录下,或者在其配置文件中指定的位置。
2、日志的类型
访问日志:
记录对服务的访问请求。例如,Web 服务器的访问日志会记录每个客户端的 IP 地址、请求的 URL、请求时间、响应状态码等信息。这对于分析网站的流量、用户行为和排查访问问题非常有用。
错误日志:
记录服务在运行过程中遇到的错误和异常情况。当服务出现故障时,首先应该查看错误日志,以确定问题的根源。错误日志通常会包含详细的错误消息、错误发生的时间和上下文信息。
系统日志:
一些系统服务可能会将重要的事件记录到系统日志中。例如,syslog或rsyslog服务负责收集和记录系统中的各种日志信息,包括系统启动和关闭、服务启动和停止、安全事件等。系统服务可以配置为将特定的事件发送到系统日志中,以便进行集中管理和分析。
3、查看日志的方法
使用文本编辑器:
可以直接使用文本编辑器打开日志文件进行查看。例如,使用vi或nano命令打开特定的日志文件。但这种方法对于查看大型日志文件可能不太方便,因为需要手动滚动和搜索。
使用命令行工具:
tail命令:可以实时查看日志文件的末尾内容。例如,tail -f /var/log/service_name.log将实时显示指定服务的日志文件的最新内容,这对于监控正在运行的服务非常有用。
grep命令:用于在日志文件中搜索特定的关键字或模式。例如,grep “error” /var/log/service_name.log将在指定服务的日志文件中搜索包含 “error” 关键字的行,帮助快速定位错误信息。
使用日志管理工具:
在大型系统中,通常会使用专门的日志管理工具来集中收集、存储和分析日志。例如,ELK Stack(Elasticsearch、Logstash、Kibana)提供了强大的日志管理和分析功能,可以从多个来源收集日志,进行索引和存储,并通过可视化界面进行查询和分析。
4、日志的配置
服务自身的配置:
许多系统服务允许通过其配置文件来配置日志的输出级别、日志文件的位置和格式等。例如,在 Apache 的配置文件中,可以设置访问日志和错误日志的格式、存储位置以及日志级别(如只记录错误信息还是包括警告和信息级别)。
系统日志配置:
可以通过配置syslog或rsyslog服务来确定哪些系统服务的日志将被收集和记录,以及如何处理不同级别的日志。例如,可以配置将特定服务的重要事件发送到远程日志服务器进行集中存储和分析。

本篇完结。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者。

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

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

相关文章

Android Studio Koala Feature Drop 稳定版现已推出

作者 / Android Studio 产品经理 Sandhya Mohan Android Studio Koala Feature Drop (2024.1.2) 现已推出!🐨 🔗 Android Studio https://developer.android.google.cn/studio 今年早些时候,我们宣布每个 Android Studio 动物版本…

vscode快速删除一行的快捷键不管用

vscode快速删除一行的快捷键 在vscode中,快速删除一行的快捷键是CtrlShiftk。 因为搜狗软键盘的快捷键和这个快捷键的按键是冲突了,所以快捷键被搜狗输入法给拦截了。把搜狗软键盘的快捷键关闭了或者修改成别的键就好了, 因为我不怎么用软键…

毕设分享 基于协同过滤的电影推荐系统

文章目录 0 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

[C#]使用纯opencvsharp部署yolov11-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 使用纯OpenCvSharp部署YOLOv11-ONNX图像分类模型是一项复杂的任务,但可以通过以下步骤实现: 准备环境:首先,确保开发环境已安装OpenCvSharp和必…

40条经典ChatGPT论文指令,圈定选题和进行论文构思

目录 1、用ChatGPT圈定选题范围2、用ChatGPT生成研究方法和思路3、用ChatGPT扩展论文观点和论证4、用ChatGPT辅助论文结构设计5、如何直接使用ChatGPT4o、o1、OpenAI Canvas6、OpenAI Canvas增强了啥?7、编程功能增强 👇 ChatGPT o1网页入口在文末&#…

Python简介与入门

如果你要用计算机做很多工作,最后你会发现有一些任务你更希望用自动化的方式进行处理。比如,你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特殊的 GUI …

双十一哪些东西会打折?快来看入手哪些东西

在当今数字化时代,数码产品已经成为了我们生活中不可或缺的一部分。无论是手机、电脑、相机等设备,还是智能家居、穿戴设备等新兴领域,数码产品的种类和功能都在不断丰富和拓展。而在即将到来的双十一购物狂欢节中,数码产品更是成…

红帽7—Mysql路由部署

MySQL Router 是一个对应用程序透明的InnoDB Cluster连接路由服务,提供负载均衡、应用连接故障转移和客户端路 由。 利用路由器的连接路由特性,用户可以编写应用程序来连接到路由器,并令路由器使用相应的路由策略 来处理连接,使其…

2024最新版:阿里内网大模型面试题首次公开,别流传出去了

随着人工智能技术的迅猛发展,计算机视觉(CV)、自然语言处理(NLP)、搜索、推荐、广告推送和风险控制等领域的岗位越来越受欢迎,而_对于大型模型技术的掌握成为了这些岗位的标配_。 但目前公开的大模型资源还…

如何在算家云搭建Omost(图像生成)

一、Omost介绍 GitHub - lllyasviel/Omost:你的图像快到了! Omost 是一个将 LLM 的编码能力转换为图像生成(或更准确地说,图像合成)能力的项目。“O”代表“omni”多模态,象征着项目支持多种形式的输入与…

设计模式:单例

一.什么是单例模式 单例模式是一种设计模式,指在整个程序生命周期中有且仅有一个实例的类。可以分为懒汉式以及饿汉式。 懒汉式:只有在类的实例被使用时才生成唯一实例。但是存在线程安全以及内存泄露的问题。可以节省系统资源。 饿汉式:程序…

腾讯云SDK 选择指引

音视频终端 SDK(腾讯云视立方)提供多种音视频场景下的终端 SDK,用户可结合自身场景需要选择相应的 SDK 进行下载。 如果您无法通过应用场景确定您需要的 SDK,可以进入 自定义 SDK 下载页,勾选您需要的功能&#xff0c…

Redis-缓存过期淘汰策略

缓存淘汰策略 生产上redis内存设置为多少 设置为最大内存的 3/4 redis 会占用物理机多少内存 默认大小是 0,64 位系统下表示不限制内存大小,32位系统表示 3G 如何设置修改redis内存大小 config get maxmemory 查看修改方式 配置文件 单位是字节 2.…

(八)Protues仿真STM32单片机GPIO驱动数码管

1,参考上篇,将LED点阵屏更换成数码管如下图 2,修改驱动函数,数组seg[14]前10个是0-9数字的编码,后四个是空格,点,横线,下划线 char seg_decode(char num)//数字解码 {const char se…

vue3中使用live2D

概述 本文将介绍如何在vue3项目中使用Live2D。 Live2D 介绍 Live2D 是什么 Live2D 是一种用于将二维图像转化为可动画三维模型的技术,主要应用于游戏、虚拟角色和互动应用中。它允许开发者通过对静态图像进行分层和建模,使角色在不同角度下能够进行流…

【Linux系统编程】第二十八弹---构建基础文件操作库与理解标准错误流(stderr)在C与C++中的应用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、封装简单的库 1.1、定义文件结构 1.2、打开文件 1.3、刷新缓冲区 1.4、写文件 1.5、关闭文件 1.6、各文件代码 2、s…

【element-tiptap】如何增加一个扩展项,为文字渲染颜色?

源码地址: https://github.com/Leecason/element-tiptap 可以看到,当前这个页面的文字,都是黑色的(除了链接) 酱紫有些单调,我喜欢五颜六色的。那么这篇文章就来看下菜单项里面如何增加一个颜色的扩展&…

k8s微服务

一 、什么是微服务 用控制器来完成集群的工作负载,那么应用如何暴漏出去?需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。 借助Service,应用可以实现服务发现和负载均衡。 service默认只支持4层负载均…

Springboot 整合 logback 日志框架

文章目录 整合 Logback 日志框架第一步:导入依赖第二步:导入配置(logback.xml)详解 使用(记录日志) 遇到问题一解决方案 整合 Logback 日志框架 第一步:导入依赖 (Springboot 会自己…

Squid + Stunnel 配置

环境: 亚马逊服务器一台:3.26.80.132 华为云服务器一台:122.59.52.68 客户机一台: Win11 实现的需求:客户机通过设置华为云代理,实现透过亚马逊服务器上网 一、亚马逊服务器 1、安装Squid https://bl…