《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.mzph.cn/bicheng/55702.shtml

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

相关文章

基于 STM32F407 的 SPI Flash下载算法

目录 一、概述二、自制 FLM 文件1、修改使用的芯片2、修改输出算法的名称3、其它设置4、修改配置文件 FlashDev.c5、文件 FlashPrg.c 的实现 三、验证算法 一、概述 本文将介绍如何使用 MDK 创建 STM32F407 的 SPI Flash 下载算法。 其中,SPI Flash 芯片使用的是 W…

【重学 MySQL】四十八、DCL 中的 commit 和 rollback

【重学 MySQL】四十八、DCL 中的 commit 和 rollback commit的定义与作用rollback的定义与作用使用场景相关示例注意事项DDL 和 DML 的说明 在MySQL中,DCL(Data Control Language,数据控制语言)用于管理数据库用户和控制数据的访问…

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下docker学习02(yum源切换及docker安装配置)

2 前期工作 2.1 切换yum源并更新 删除/etc/yum.repos.d/原有repo文件,将Centos-7.repo库文件拷贝到该目录下。 然后清楚原有缓存yum clean all 生成新的缓存yum makecache 更新yum update –y 然后再确认/etc/yum.repos.d/不会有其他库文件,只留下…

elasticsearch设置账号和密码

1、es安装,挂载路径根据实际情况修改 docker run -d --restart always \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -e "TZAsia/Shanghai" \ -v /mnt/data/efk/es/data:/usr/share/elast…

Android高级控件

文章目录 1.下拉列表Spinner1.数组适配器ArrayAdapter2.简单适配器SimpleAdapter3.基本适配器BaseAdapter 2.列表视图ListView3.网格视图GridView4.翻页视图ViewPager5.翻页标签栏pagerTabStrip6.ViewPager实现引导页7.碎片Fragment1.Fragment静态注册2.Fragment生命周期3.Frag…

Hack Uboot

在硬件评估过程中,经常会遇到采用U-Boot的设备。本文旨在阐述U-Boot是什么,从攻击角度来看它为何如此吸引人,以及这种流行的引导程序所关联的攻击面。 U-Boot 特性 U-Boot,即通用引导加载程序(Universal Boot Loader…

java中创建不可变集合

一.应用场景 二.创建不可变集合的书写格式(List,Set,Map) List集合 package com.njau.d9_immutable;import java.util.Iterator; import java.util.List;/*** 创建不可变集合:List.of()方法* "张三","李四","王五…

问题解决实录 | bash 中 tmux 颜色显示不全

点我进入博客 如下图,tmux 中颜色显示不全: echo $TERM输出的是 screen 但在 bash 里面输出的是 xterm-256 color 在 bash 里面输入: touch ~/.tmux.conf vim ~/.tmux.conf set -g default-terminal "xterm-256color"使之生效 source …

【设计模式-中介者模式】

定义 中介者模式(Mediator Pattern)是一种行为设计模式,通过引入一个中介者对象,来降低多个对象之间的直接交互,从而减少它们之间的耦合度。中介者充当不同对象之间的协调者,使得对象之间的通信变得简单且…

基于ucontext库实现协程类

文章目录 前言协程基础知识协程上下文对称协程与⾮对称协程有栈协程与⽆栈协程 ucontext库接口熟悉一个简单的函数切换自动调用 协程类的实现接口全局变量线程局部变量malloc封装协程切换构造函数协程执行的方法 测试协程切换手动切换复用 前言 协程(Coroutine&…

【从0开始搭建微服务并进行部署】SpringBoot+dubbo+zookeeper

文章目录 说明环境搭建创建项目父模块设置子模块 dubbo-api子模块 dubbo-provider子模块 dubbo-consumer测试项目 docker部署项目完整项目地址 说明 jdk1.8SpringBoot2.x低版本dubbo:请查看之前教程【微服务】SpringBootDubboZooKeeper 实战 关于本教程将采用jdk1…

HTML流光爱心

文章目录 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心(简易版)7HTML粒子爱心8HTML蓝色动态爱心9HTML跳动的爱心(双心版)1…

如何用AI绘画工具生成中国风插画?Midjourney保持风格一致出图

​ 如何运用AI绘画工具如Midjourney,生成符合我们特定要求的艺术作品是一门精进的技巧,尤其当你想生成具有鲜明特色的国风插画时,纯文本提示词的局限性常常使我们难以达到预期效果。然而,借助Midjourney的高级参数功能——特别是s…

【课程学习】随机过程之泊松过程

随机过程之泊松过程 泊松分布泊松过程 泊松分布 二项分布是离散性的分布,泊松分布是把二项分布取n趋于无穷得到的连续分布。也就是在一段时间内不停的观察某件事情发生的次数。 如:一个小时内观察一段路上经过行人的数目,如果每个半个小时观…

Prompt 模版解析:诗人角色的创意引导与实践

Prompt 模版解析:诗人角色的创意引导与实践 Prompt 模版作为一种结构化工具,旨在为特定角色——本例中的“诗人”——提供明确的指导和框架。这一模版详尽地描绘了诗人的职责、擅长的诗歌形式以及创作规则,使其能在自动化系统中更加精确地执…

【Unity】双摄像机叠加渲染

一、前言 之前我在做我的一个Unity项目的时候,需要绘制场景网格的功能,于是就用到了UnityEngine.GL这个图形库来绘制,然后我发现绘制的网格线是渲染在UI之后的,也就是说绘制出来的图形会遮盖在UI上面,也就导致一旦这些…

计算机网络:物理层 —— 物理层下的传输媒体

文章目录 传输媒体导向性媒体同轴电缆双绞线光纤光纤分类中心波长光纤规格光纤的优缺点 非导向性媒体ISM 频段无线电波微波激光红外线可见光 传输媒体 传输媒体是计算机网络设备之间的物理通路,也称为传输介质或传输媒介,并不包含在计算机网络体系结构中…

什么是 ARP 欺骗和缓存中毒攻击?

如果您熟悉蒙面歌王,您就会明白蒙面歌王的概念:有人伪装成别人。然后,当面具掉下来时,您会大吃一惊,知道了这位名人是谁。类似的事情也发生在 ARP 欺骗攻击中,只是令人惊讶的是,威胁行为者利用他…

ModuleNotFoundError: No module named ‘package‘

报错: Traceback (most recent call last): File “”, line 198, in run_module_as_main File “”, line 88, in run_code File "D:\python\helloworld.venv\Scripts\pip.exe_main.py", line 4, in File "D:\python\helloworld.venv\Lib\site-pac…

android 全面屏最底部栏沉浸式

Activity的onCreate方法中添加 this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); Android 系统 Bar 沉浸式完美兼容方案自 Android 5.0 版本,Android 带来了沉浸式系统 ba - 掘金 (juejin.cn)https://juejin.cn/post/7075578…