《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,一经查实,立即删除!

相关文章

EWSTM8 IAR for STM8 软件分享

1. 软件简介 EWSTM8,即 IAR for STM8,全称为 IAR Embedded Workbench for STM8,它是 IAR ARM 嵌入式工作台之一,用于开发 STM8。IAR 有多个不同名的版本,对应不同的开发对象。 EWSTM8最新版本为V3.11(202…

基于 STM32F407 的 SPI Flash下载算法

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

Apollo配置中心实战

本地快速部署请参见Quick Start 编译打包Apollo cd ~/Documents/workspace/apollo sh scripts/build.sh运行Apollo sh src/main/scripts/startup.sh # $SERVICE_NAME".jar"配置服务 元数据服务 cd ~/Documents/workspace/apollo/apollo-configservice nohup java …

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

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

windows C++-创建基于代理的应用程序(上)

本文介绍了如何创建基本的基于代理的应用程序。 在这个案例中,你可以创建一个代理,从文本文件中异步读取数据。 应用程序使用 Adler-32 校验和算法来计算该文件内容的校验和。 创建控制台应用 本部分介绍了如何创建 C 控制台应用程序,用于引…

螺蛳壳里做道场:老破机搭建的私人数据中心---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/不会有其他库文件,只留下…

RabbitMq生产者可靠性

基本概念: RabbitMQ生产者可靠性主要涉及确保消息能够可靠地发送到RabbitMQ服务器,并且在出现故障时能够进行适当的处理。 消息确认机制(Publisher Confirms): 启用 Publisher Confirms:生产者在发送消息之…

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…

【数据库】MongoDB的索引功能及其在Java中的实现

MongoDB 的索引功能极大地提高了查询性能。通过创建索引,MongoDB 可以快速定位到数据,而无需扫描整个集合。本文将介绍 MongoDB 的索引功能及其在 Java 中的实现方法。 1. 什么是索引? 索引是数据库中用于快速查找和排序数据的一种数据结构。…

Hack Uboot

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

SpringBoot实现:古典舞在线交流平台全攻略

第一章 绪论 1.1研究背景 在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加工中。它将促进…

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

微知-梅林系统设置无线桥接模式后如何登录梅林路由器?

背景: 本文将介绍2种使用路由器桥接后无法登录桥接路由器的解决办法,主要涉及到华为梅林系统(刷机或者原生)的无线桥接模式。 当图中梅林路由器设置为无线桥接模式后,连接到梅林路由器的调试电脑E,因为会从…

基于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…

百度飞桨(paddlepaddle)安装

百度飞桨(paddlepaddle)安装 Anaconda升级 打开 Anaconda Prompt (或者 Mac 下的终端),键入: conda upgrade --all pip 安装 python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/s…