Linux进程与服务管理

Linux进程与服务管理

文章目录

  • Linux进程与服务管理
    • 一、前言
    • 二、进程与服务管理
      • [2.1 进程的基本概述](#2.1 进程的基本概述)
        • [2.1.1 定义](#2.1.1 定义)
        • [2.1.2 分类](#2.1.2 分类)
      • [2.2 Linux进程相关指令详解](#2.2 Linux进程相关指令详解)
        • [2.2.1 查看进程:`ps`](#2.2.1 查看进程:ps)
        • [2.2.2 终止进程:`kill`](#2.2.2 终止进程:kill)
        • [2.2.3 案例](#2.2.3 案例)
      • [2.3 查看进程树指令](#2.3 查看进程树指令)
      • [2.4 Linux服务器管理之service指令](#2.4 Linux服务器管理之service指令)
        • [2.4.1 定义](#2.4.1 定义)
        • [2.4.2 指令](#2.4.2 指令)
      • [2.5 Linux服务管理之chkconfig指令](#2.5 Linux服务管理之chkconfig指令)
      • [2.6 Linux服务管理之systemctl指令](#2.6 Linux服务管理之systemctl指令)
        • [2.6.1 查看服务](#2.6.1 查看服务)
        • [2.6.2 参数](#2.6.2 参数)
        • [2.6.3 关于开机自启动](#2.6.3 关于开机自启动)
      • [2.7 Linux服务指令之防火墙指令](#2.7 Linux服务指令之防火墙指令)
        • [2.7.1 防火墙的作用](#2.7.1 防火墙的作用)
        • [2.7.2 指令](#2.7.2 指令)
      • [2.8 Linux进程管理top指令](#2.8 Linux进程管理top指令)
        • [2.8.1 `top`详解](#2.8.1 top详解)
        • [2.8.2 `top`指令的交互操作](#2.8.2 top指令的交互操作)
        • [2.8.3 应用实例](#2.8.3 应用实例)
      • [2.9 Linux网络监控指令netstat](#2.9 Linux网络监控指令netstat)
        • [2.9.1 作用](#2.9.1 作用)
        • [2.9.2 指令详解](#2.9.2 指令详解)
    • 三、小结

一、前言

今天是关于进程和服务管理的相关介绍~

二、进程与服务管理

2.1 进程的基本概述

2.1.1 定义

进程就是每个正在执行的程序。

在Windows中怎么查看:

2.1.2 分类
  • 前台进程

    对屏幕的占用(没法做其他事情)

    shell 复制代码
    top				// 实时动态显示系统运行状态
  • 后台进程

    所有进程中占大多数比例

    用户看不到的,在系统的后台运行,一般在系统关机/重启会结束进程

    shell 复制代码
    ps				// 查看系统中有哪些进程运行

    PID:进程号

    TTY:终端机号

    TIME:当前进程消耗的CPU时间

    CMD:当前进程的名称或者执行对应进程的命令

    参数:

    选项 含义
    -a 显示进程终端的详细信息
    -u 以用户格式显示进程信息
    -x 显示后台进程运行的参数

    参数详解:

    USER:进程所属的用户信息

    VSZ:进程对于虚拟内存的占用大小

    %CPU:进程占用CPU的百分比

    %MEM:进程占用内存的百分比

    RSS:对于物理进程的占用大小

    STAT:进程的状态:S-sleep;R-run;Z(zombie)-僵死进程;T-被停止的进程

    START:进程的开启时间

    TIME:进程占用CPU的时间

    COMMAND:进程的名称或者进程启动需要用到的命令和参数

2.2 Linux进程相关指令详解

2.2.1 查看进程:ps
shell 复制代码
ps -ef				// 使用全格式查看所有的进程信息
// -e: 所有进程
// -f: 全格式显示

上面是显示全部的进程,可不可以显示指定的进程呢?可以!这就需要过滤了

shell 复制代码
ps -ef | grep sshd			// 查看sshd服务对应的进程

参数:

  • 第一列:进程所属的用户
  • 第二列:Linux所属的进程ID
  • 第三列:父进程
2.2.2 终止进程:kill
shell 复制代码
kill 进程ID
kill -9 进程ID			// 强制杀死进程
killall					 // 杀死当前进程及其子进程
2.2.3 案例
  • 强制让登录用户kobe下线

    先登录用户(再开一个终端)

    杀死进程

  • 终止远程登录服务sshd。不允许远程登录,然后重启sshd服务,允许远程登录

    (最好在图形化界面中实现)

    发现登不上去了(远程服务关掉了)

    经验贴:如果有一天远程登不上Linux了,但是在Linux内部可以登录,应该是sshd服务的问题

    shell 复制代码
    /bin/systemctl start sshd.service			// 重启sshd服务

    又可以登录了!

  • 终止多个gedit(记事本打开文件的进程)

    先打开多个文件

    会发现终端都消失了

  • 强制杀掉一个终端

    启动多个终端

    为什么没有退掉一个进程呢?

    系统认为打开两个窗口都是有作用的,不应该结束进程

    shell 复制代码
    kill -9 进程号

    这样就可以删除一个终端了

2.3 查看进程树指令

shell 复制代码
pstree			// 以树状的形式展示进程信息(仅显示了进程的名称)
// 参数
// -p: 显示进程所属的pid
// -u: 显示进程所属的用户

2.4 Linux服务器管理之service指令

2.4.1 定义

服务:运行在后台的进程,通常会监听窗口等待程序访问

2.4.2 指令
shell 复制代码
systemctl list-unit-files --type=service	// 查看安装了哪些服务
service 服务名称 status					   // 查看服务状态
service 服务名称 start  					   // 终止某服务
service 服务名称 stop  					   // 启动某服务
systemctl enable sshd					  // 开机自启

2.5 Linux服务管理之chkconfig指令

在CentOS stream 9中,已经不存在这样的指令了。(这里做了解就可以了)

shell 复制代码
chkconfig --list			// 查看服务的配置状态
chkconfig --list | grep 服务名称	// 仅查看某一个服务
chkconfig --level 5 服务名称 on		// 设置服务开关(一定要指定Linux的运行级别)

2.6 Linux服务管理之systemctl指令

service指令和config的指令慢慢都被systemctl替换了

2.6.1 查看服务

systemctl指令管理的服务在/usr/lib/systemd/system中查看

shell 复制代码
systemctl list-unit-files			// 查看所有被systemctl管理的服务的名称

也可以仅用来查看某个服务

2.6.2 参数
shell 复制代码
systemctl start 服务名称			// 启动服务
systemctl status 服务名称			// 查看服务状态
systemctl stop 服务名称				// 停止服务
systemctl restart 服务名称			// 进行一些设置后,重启服务
2.6.3 关于开机自启动
shell 复制代码
systemctl is-enabled 服务名称			// 查看某一服务是否自启动
systemctl enable 服务名称				// 设置服务自启动
systemctl disable 服务名称				// 设置为非自启动
服务状态 含义
masked 此服务禁止自启动
static 该服务无法自启动,只能作为其他文件的依赖
enabled 已设置为自启动
disabled 未设置为自启动

2.7 Linux服务指令之防火墙指令

2.7.1 防火墙的作用

Linux内的程序如果要被外界访问,除了设置唯一的端口,还要设置防火墙,授权外界访问这个端口。

防火墙起到隔离的作用,保证服务访问的安全性。

2.7.2 指令
shell 复制代码
firewall-cmd --permanent --add-port=端口号/协议			// 打开端口/允许协议
firewall-cmd --permanent --remove-port=端口号/协议		// 关闭端口/禁用协议
firewall-cmd --query-port=端口/协议						// 查询端口/协议是否开启
firewall-cmd --list-ports						// 查看防火墙所有开放的端口/协议配置
firewall-cmd --reload								// 重载防火墙

以后安装了什么服务(如:数据库等),如果想让外界可以访问的话,必须设置防火墙

2.8 Linux进程管理top指令

topps一样,都是显示正在执行的进程信息。不同之处:top动态显示,每隔3ss刷新一次

2.8.1 top详解
shell 复制代码
top
选项 功能
-d秒数 指定top命令每隔几秒刷新,默认3秒
-i 使用top不显示任何闲置或者僵死的进程
-p 通过指定监控ID来仅仅监控某个进程的状态

指标详解:

  • 21:28:03:top指令刷新的时间
  • up 7:47:当前Linux系统运行了多长时间
  • 4 users:连接当前Linux系统的用户数量
  • load average:Linux的负载值(3个数字相加除以3>0.7说明Linux的负载率比较高)
  • task:318 total:在Linux系统中总进程数
  • 1 running:正在运行的进程数量
  • 317 sleeping:休眠的进程数量
  • 0 stopped:被停止的进程数量
  • 0 zombie:僵死的进程数量
  • %Cpu(s):0.1 us:描述当前Linux系统的cpu占比
  • us,0.4:用户占用cpu的百分比
  • MiB Mem:3623.0 total:描述Linux的内存情况
  • 737.1 free:Linux系统中空闲的内存容量
  • 1342.5 used:已经使用的内存
  • 1832.0 buff/cache:缓存
  • MiB Swap:描述交换区的总内存(内存不够用时,交换机来"客串"一下)
2.8.2 top指令的交互操作

当我们输入top命令后,我们可以按下面的字符来进行对应的交互操作。

操作 功能
P 以CPU使用率来排序,默认是此项
M 以内存使用来排序
N 以PID排序
q 退出top
2.8.3 应用实例
  • 监控特定用户(前提是该用户登录了)

    先输入top指令,输入小写u,最后输入用户名然后回车,查看执行的进程

  • 终止指定的进程,比如结束kate登录

    top:输入此命令,然后回车,查看执行的进程

    输入k,然后输入要结束的进程ID号,回车之后输入9强制删除

2.9 Linux网络监控指令netstat

2.9.1 作用

netstat用来显示Linux内部的服务和外界程序的连接状态

2.9.2 指令详解
shell 复制代码
netstat -anp | more
// -an: 按照一定的顺序排列输出
// -p: 显示哪个进程在调用
  • proto:网络协议。当前Linux后台服务进程和外界程序连接是遵循哪个网络协议
  • Local Address:本地的Linux的地址以及本地对应的进程的端口号
  • Foreign Address:外部的网络地址和端口
  • State:当前后台服务进程和外界程序之间的连接状态
    • ESTABLISHED:建立连接的状态
    • LISTEN:监听状态
      如何理解Foreign Address呢?

查看指定服务的网络连接状态

shell 复制代码
netstat -anp | grep sshd			// 查看sshd服务的网络连接状态

三、小结

这一章可谓是为项目在Linux的部署奠定基础具有重要的意义~

相关推荐
漉水浮沙1 小时前
Fio crc 数据校验验证
java·服务器·前端·数据库
Jason_zhao_MR1 小时前
米尔RK3576成功上车!ROS2 Humble生态系统体验
linux·嵌入式硬件·物联网·ubuntu·嵌入式
坚持学习前端日记1 小时前
认证模块文档
java·服务器·前端·数据库·spring
Cloud Traveler1 小时前
告别餐桌选择困难,YunYouJun cook+cpolar 让私房菜谱走到哪用到哪
linux·运维·自动化
胡斌附体2 小时前
docker创建镜像遇到的问题
运维·docker·容器·docker镜像·腾讯云镜像·网络问题
wdfk_prog10 小时前
[Linux]学习笔记系列 -- hashtable
linux·笔记·学习
每日出拳老爷子10 小时前
【远程协助】内网 IT 运维远程协助系统的最小可用架构
运维·服务器·远程工作·流媒体·视音频
weixin_4624462311 小时前
使用 Puppeteer 设置 Cookies 并实现自动化分页操作:前端实战教程
运维·前端·自动化
CheungChunChiu11 小时前
Linux 内核动态打印机制详解
android·linux·服务器·前端·ubuntu