0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Linux系统中的服务管理

马哥Linux运维 来源:CSDN技术社区 2025-05-23 15:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux运维一定要知道的服务管理!

简介

在Linux中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及systemd脚本添加进去,不过此时它们并没有被启用。

我们需要手动的开启或者关闭那些服务。Linux中有三个著名的且一直在被使用的初始化系统。

在以Linux/Unix为基础的操作系统上,init(初始化的简称) 是内核引导系统启动过程中第一个启动的进程。

init的进程id (pid)是1,除非系统关机否则它将会一直在后台运行。

init首先根据/etc/inittab文件决定Linux运行的级别,然后根据运行级别在后台启动所有其他进程和应用程序。

BIOS、MBR、GRUB和内核程序在启动init之前就作为Linux的引导程序的一部分开始工作了。

下面是Linux中可以使用的运行级别(从0~6总共七个运行级别):

• 0:关机

• 1:单用户模式

• 2:多用户模式(没有NFS)

• 3:完全的多用户模式

• 4:系统未使用

• 5:图形界面模式

• 6:重启

初始化系统

下面是 Linux 系统中最常用的三个初始化系统:

•System V(Sys V)

•Upstart

•systemd

System V(Sys V)

System V(Sys V)是类Unix系统第一个也是传统的初始化系统。init是内核引导系统启动过程中第一支启动的程序,它是所有程序的父进程。

大部分Linux发行版最开始使用的是叫作System V(Sys V)的传统的初始化系统。在过去的几年中,已经发布了好几个初始化系统以解决标准版本中的设计限制,例如:launchd、Service Management Facility、systemd和Upstart。

但是systemd已经被几个主要的Linux发行版所采用,以取代传统的SysV初始化系统。

Upstart

Upstart是一个基于事件的/sbin/init守护进程的替代品,它在系统启动过程中处理任务和服务的启动,在系统运行期间监视它们,在系统关机的时候关闭它们。

它最初是为Ubuntu而设计,但是它也能够完美的部署在其他所有Linux系统中,用来代替古老的System-V。

Upstart被用于Ubuntu 9.10到Ubuntu 14.10和基于RHEL 6的系统,之后它被systemd取代。

systemd

systemd是一个新的初始化系统和系统管理器,它被用于所有主要的Linux发行版,以取代传统的SysV初始化系统。

systemd兼容SysV和LSB初始化脚本。它可以直接替代SysV初始化系统。systemd是被内核启动的第一个程序,它的PID是1。

systemd是所有程序的父进程,Fedora 15是第一个用systemd取代upstart的发行版。systemctl用于命令行,它是管理systemd的守护进程/服务的主要工具,例如:(开启、重启、关闭、启用、禁用、重载和状态)

systemd使用.service文件而不是bash脚本(SysVinit 使用的)。systemd将所有守护进程添加到cgroups中排序,你可以通过浏览/cgroup/systemd文件查看系统等级。

service

service命令,顾名思义,就是用于管理Linux操作系统中服务的命令。

这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、mandriva和centos中。

查看所有服务当前的运行状态
service --status-all

查看指定服务(vsftpd)的运行状态
service vsftpd status

停止指定服务(vsftpd)
service vsftpd stop

重启网络服务
service network restart

chkconfig

chkconfig实用程序是一个命令行工具,允许你在指定运行级别下启动所选服务,以及列出所有可用服务及其当前设置。

此外,它还允许我们从启动中启用或禁用服务。前提是你有超级管理员权限(root或者sudo)运行这个命令。

所有的服务脚本位于/etc/init.d文件中

0bb802f6-362a-11f0-afc8-92fbcf53809c.pngimage-20210803160510022 0bc41334-362a-11f0-afc8-92fbcf53809c.pngimage-20210803153702926

设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig --level 35 mysqld on

设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
chkconfig mysqld on    

修改服务的默认启动等级
chkconfig --level 35 mysqld on

systemctl

概念

systemd核心概念unit(单元)类型:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;
文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息

下面为unit类型 :

•service:文件扩展名为.service, 用于定义系统服务

•target:文件扩展名为.target,用于模拟实现运行级别

•device:用于定义内核识别的设备

•mount:定义文件系统挂载点

•socket:用于标识进程间通信用的socket文件,也可在系统启动时,延迟启动服务,实现按需启动

•snapshot:管理系统快照

•swap:用于标识swap设备

•automount:文件系统的自动挂载点

•path:用于定义文件系统中的一个文件或目录使用,常用于当文件系统变化时,延迟激活服务

么如何查看这些类型呢?

可以使用-t加上类型去查看,以service为例

ststemctl -t service
0bceefd4-362a-11f0-afc8-92fbcf53809c.pngimage-20210803212557113

systemd的配置文件目录

•/usr/lib/systemd/system/:每个服务最主要的启动脚本的配置放在这,有点类似以前的/etc/init.d;

0bdf0ab8-362a-11f0-afc8-92fbcf53809c.pngimage-20210803213413975

•/run/systemd/system/:系统执行过程中所产生的服务脚本所在目录,这些脚本的优先级要比/usr/lib/systemd/system/高;

0beeae82-362a-11f0-afc8-92fbcf53809c.pngimage-20210803213505374

•/etc/systemd/system/:管理员根据主机系统的需求所创建的执行脚本所在目录,执行优先级比/run/systemd/system/高;

0bffbd94-362a-11f0-afc8-92fbcf53809c.pngimage-20210803213309938

从上面的功能及优先级次序,我们可以知道,/etc/systemd/system/目录下的相关配置,决定系统了会不会执行某些服务,所以该目录下面一般放着一大堆链接文件。而/usr/lib/systemd/system/下,则放着实际执行的systemd启动脚本配置文件。因此如果你想要修改某个服务启动的设置,应该去/usr/lib/systemd/system/下面修改。/etc/systemd/system/仅是链接到正确的执行脚本配置文件而已。所以想要看执行脚本设置,应该就得要到/usr/lib/systemd/system/去查阅。

常用命令

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

查看服务状态

systemctl status httpd

运行状态:

•active(running):正有一只或多只程序正在系统中执行的意思;

•active(exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行;

•active(waiting):正在执行当中,不过还需要等待其他的事件才能继续处理;

•inactive:这个服务目前没有运行;

•dead:程序已经清除;

启动状态:

•enabled:这个daemon将在开机时被执行;

•disabled:这个daemon在开机时不会被执行;

•static:这个daemon不可以自己启动(enable不可),不过可能会被其他的enabled的服务来唤醒(关联属性的服务);

•mask:这个daemon无论如何都无法被启动,因为已经被强制注销(非删除),可通过systemctlunmask方式改回原本状态;

0c112a98-362a-11f0-afc8-92fbcf53809c.pngimage-20210803213938487

检查服务的所有配置详细信息

systemctl show httpd
0c25255c-362a-11f0-afc8-92fbcf53809c.pngimage-20210803210056119

查看各服务开机自启情况

systemctl list-unit-files --type=service
0c350436-362a-11f0-afc8-92fbcf53809c.pngimage-20210803212005893

获取服务的依赖项列表

systemctl list-dependencies httpd.service
0c4028f2-362a-11f0-afc8-92fbcf53809c.pngimage-20210803210246562

按层次列出控制组

systemd-cgls
0c4e4d7e-362a-11f0-afc8-92fbcf53809c.pngimage-20210803210737214

根据CPU,内存,输入和输出列出控制组

systemd-cgtop
0c6762b4-362a-11f0-afc8-92fbcf53809c.pngimage-20210803210940418

分析每个进程在引导时花费的时间

systemd-analyze blame
0c78c874-362a-11f0-afc8-92fbcf53809c.pngimage-20210803204820452

列出所有可用的系统套接字

systemctl list-unit-files --type=socket
0c83b414-362a-11f0-afc8-92fbcf53809c.pngimage-20210803205639124

套接字的操作

systemctl start cups.socket #启动套接字
systemctl restart cups.socket #重启套接字
systemctl stop cups.socket #停止套接字
systemctl reload cups.socket #重新加载套接字
systemctl status cups.socket #查看套接字状态

systemctl is-active cups.socket
systemctl enable cups.socket
systemctl disable cups.socket

其他命令

systemctl mask httpd.service  #禁用某个服务
systemctl unmask httpd.service  #解除禁用某个服务

systemctl isolate multi-user.target #将目前的操作环境改为纯文本模式,关掉图形界面
systemctl isolate graphical.target #将目前的操作环境改为图形界面

systemctl poweroff # 系统关机
systemctl reboot # 重新开机
systemctl suspend # 进入暂停模式
systemctl hibernate # 进入休眠模式
systemctl rescue # 强制进入救援模式
systemctl emergency # 强制进入紧急救援模式

链接:https://blog.csdn.net/weixin_46622350/article/details/119360481?spm=1001.2014.3001.5502

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217926
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128614
  • 脚本
    +关注

    关注

    1

    文章

    407

    浏览量

    29051

原文标题:Linux运维一定要知道的服务管理!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux的内存管理是什么,Linux的内存管理详解

    Linux的内存管理 Linux的内存管理是一个非常复杂的过程,主要分成两个大的部分:内核的内存管理和进程虚拟内存。内核的内存
    的头像 发表于 05-11 17:54 6890次阅读
    <b class='flag-5'>Linux</b>的内存<b class='flag-5'>管理</b>是什么,<b class='flag-5'>Linux</b>的内存<b class='flag-5'>管理</b><b class='flag-5'>详解</b>

    Linux LED子系统详解

    Linux LED子系统详解
    的头像 发表于 06-10 10:37 2200次阅读
    <b class='flag-5'>Linux</b> LED子<b class='flag-5'>系统</b><b class='flag-5'>详解</b>

    Linux系统命令及其使用详解

    Linux系统命令及其使用详解
    发表于 08-20 13:38

    ARM嵌入式Linux系统开发详解

    大量读者好评的“Linux典藏大系”的《ARM嵌入式Linux系统开发详解》的第2版。《Linux
    发表于 09-14 08:57

    Linux系统磁盘管理是什么

    Linux系统的磁盘管理
    发表于 05-11 15:29

    linux系统进程存在状态及管理

    linux系统进程存在状态及管理详解
    发表于 05-21 06:28

    Linux启动过程详解

    1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令
    发表于 11-02 07:01

    Linux基础命令之Linux系统服务解析

    2.3 Linux系统服务 init进程的作用是启动Linux系统服务(也就是运行在后台的守护进
    发表于 10-18 14:25 0次下载

    Linux设备驱动开发详解》第9章、Linux设备驱动的异步通知与异步IO

    Linux设备驱动开发详解》第9章、Linux设备驱动的异步通知与异步IO
    发表于 10-27 11:33 0次下载
    《<b class='flag-5'>Linux</b>设备驱动开发<b class='flag-5'>详解</b>》第9章、<b class='flag-5'>Linux</b>设备驱动<b class='flag-5'>中</b>的异步通知与异步IO

    Linux设备驱动开发详解》第8章、Linux设备驱动的阻塞与非阻塞IO

    Linux设备驱动开发详解》第8章、Linux设备驱动的阻塞与非阻塞IO
    发表于 10-27 11:35 9次下载
    《<b class='flag-5'>Linux</b>设备驱动开发<b class='flag-5'>详解</b>》第8章、<b class='flag-5'>Linux</b>设备驱动<b class='flag-5'>中</b>的阻塞与非阻塞IO

    Linux设备驱动开发详解》第7章、Linux设备驱动的并发控制

    Linux设备驱动开发详解》第7章、Linux设备驱动的并发控制
    发表于 10-27 11:37 10次下载
    《<b class='flag-5'>Linux</b>设备驱动开发<b class='flag-5'>详解</b>》第7章、<b class='flag-5'>Linux</b>设备驱动<b class='flag-5'>中</b>的并发控制

    Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统

    Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统
    发表于 10-27 14:13 0次下载
    《<b class='flag-5'>Linux</b>设备驱动开发<b class='flag-5'>详解</b>》第5章、<b class='flag-5'>Linux</b>文件<b class='flag-5'>系统</b>与设备文件<b class='flag-5'>系统</b>

    Linux系统EXP命令详解质量汇总

    Linux系统EXP命令详解质量汇总
    发表于 05-14 09:35 1次下载

    Linux用户管理详解

    用户分为普通用户和超级用户,超级用户在Windows系统为Administrator在Linux系统为root。登陆
    的头像 发表于 11-01 09:48 933次阅读

    华纳云服务Linux系统电源管理与节能优化配置方法

    与优化服务配置,可显著降低云服务器能耗,同时保障业务连续性,实现绿色计算与成本控制的双重目标。 Linux电源管理架构解析 现代云服务
    的头像 发表于 08-21 15:09 593次阅读