栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux操作系统(四)——【进程管理】

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux操作系统(四)——【进程管理】

目录
  • 一、进程概述
    • 1. 进程是什么
    • 2. 理解进程(一切皆文件)
  • 二、查看进程
    • `ps`:最常用的列出当前系统进程的命令
    • `top`命令(相当于Windows的任务管理器):
  • 三、管理进程
    • 1. 管理前台和后台进程
    • 2. 关闭和修改进程
  • 四、管理服务
    • 1. 守护进程(init 或 systemd)
    • 2. Linux 服务管理有两个命令:service命令和systemctl命令

一、进程概述 1. 进程是什么
  • 一个进程,是一条命令运行的实例,如一个vi命令,同时被15个同的用户打开,那么就会创建15个进程。
  • 进程通过 ID 进行识别,进程ID(PID) 对当前系统来说,是唯一的
  • 进程会与一个特定的 用户账号 和 组 关联,账号信息可以帮助进程获取指定的系统资源权限。
2. 理解进程(一切皆文件)
  • Linux的进程在/proc目录下,存在于以 进程ID 命名的文件夹中,如下图,蓝色命令表示进程ID
二、查看进程 ps:最常用的列出当前系统进程的命令
  • 常用的ps命令:
    • ps u 显示进程的同时,以用户角度查看进程的使用资源情况

    • 从下图可以看出,当前root是通过sudo -i切换,同时执行了bash和ps uf进程

    • STAT中 R 表示睡眠进程;S 表示正在运行;+ 表示前台操作

    • VSZ(Virtual Set Size):虚拟内存大小,以KB为单位

    • RSS(Resident Set Size):实际内存大小

    • ps ux |less:查看系统当前用户的所有进程;|less 是管道处理,分页显示结果

    • 对于 ps 命令,我们可以自定义选择的列,或者按照某一列进行排序

    • 例如ps -eo pid,user,uid,group,gid,vsz,rss,comm |less,其中 ps -e 列出运行中的进程,后面接 o 代表指定列,且每列之间不能有空格

    • ps -eo pid,user,uid,group,gid,vsz,rss,comm --sort=-rss,其中--sort=-rss表示rss(内存使用)排倒叙,由大到小(正序是由小到大)

top命令(相当于Windows的任务管理器):
  • top 提供了一种面向屏幕的方法来显示系统中运行的进程。在使用 top 时,默认按照进程当前所使用的 CPU 时间来显示进程,也可以设置为其它排序
  • 当发现一个进程为不适当的进程,可以使用 top 来完全终止进程或改变进程优先级
  • top 界面下的一些操作命令 (注意大小写的区分)
    • 单击 h,查看帮助文件,再按任意键返回
    • 单击 M,以内存占用排序,单击 P, 以CPU占用排序
    • 单击 数字1,切换显示器所有 CPU 的使用情况
    • 单击 R,对输出进行反向排序
    • 单击 u,并输入用户名,显示某用户的进程
    • 单击 r,并输入进程 PID, 该改变进程的优先级,优先级取值为 -19~20
    • 单击 k,杀死进程,输入进程 PID,在输入 15 表示彻底终止进程
三、管理进程 1. 管理前台和后台进程
  • 在 Linux 的 shell 中,无法快捷的进行进程的切换,因为 shell 中并没有像Windows 下面的任务栏这样的便于进程切换的工具。

  • shell 能做的是在后台和前台之间切换当前活动的程序

  • find /usr > /temp/1.txt &:直接在命令后面加一个 & 符号,即可将命令放到后台。图中 1 为后台序号,1598为进程ID。解释:如果只执行find /usr,则前台会蹦出很多查询信息,因此放入后台就不会显示了

  • 通过 jobs 查看后台进程

  • fg %1

2. 关闭和修改进程
  • Linux 对进程的操作,依赖进程间的信号来实现
  • 通常,信号是由一个系统错误产生,当然也可以人为发送信号
  • 通常的信号如下:
信号名数字说明
SIGHUP1由一个非连接状态的终端发送给控制进程,或者控制进程在自身结束时发送给前台进程
SIGHT2一般是由 Ctrl + C 发起的中断
SIGKILL9一般是由 SHELL 中 强制终止异常进程
SIGTERM15通常是一个结束请求,如关机时,发送给进程。kill 命令默认也发送这个信号
  • 比如,我们要关闭一个 PID 为 8888 的进程,可以执行下面操作
    kill 8888:kill 默认发送15信号
    kill -15 8888:kill 指定发送15信号
    kill -SIGKILL 8888:kill指定发送 9 信号,即SIGKILL
    kill -1 8888:kill指定发送 1 信号,类似于 systemctl reload httpd,重新加载配置文件

  • 使用killall命令,可以根据进程名发送信号,而不需要查看 进程ID

    • 这样做的优点,是可以方便的干掉进程,但也有可能误杀了其他进程,例如:
    • killall bash:除了会杀掉 bash,还会杀掉所有 shell 脚本
    • 同样也可以使用信号数字,如:kill all -9 httpd
  • 修改进程CPU使用优先级

    • Linux 使用 nice 值 定义进程访问 CPU 的优先级(即top中的 NI 列)

      • nice 值可以在 -20~19之间,默认值取为0(可以看top命令中的 NI 列)
      • nice 值越低,进程就有更多访问 CPU的机会,即优先级越高
      • 普通用户只能将 自己的进程 nice 设为0~19
      • 普通用户只能将 nice 值 越设越高
    • 例如:nice -5 vim & 将 vim 进程放在后台运行,且设置 nice值 为0 + 5,其中0为默认nice

    • 例如:renice -n -5 8888:对进程ID为8888的nice值 减5

四、管理服务 1. 守护进程(init 或 systemd)

守护进程可以理解为所有“进程之母”
守护进程是 Linux 内核中的第一个进程,其名称通常为 init 或 system
Linux 内核中有一个 PID为0的进程,表示内核,守护进程的PID为1

2. Linux 服务管理有两个命令:service命令和systemctl命令
  • service命令的本质:执行/etc/init.d目录下的脚本
  • systemctl命令(新版本):是Linux 系统最新的初始化系统,同时 systemctl 也兼容了 services 命令,也会查找 /etc/init.d目录

systemctl 常用方法如下:

  • systemctl start | stop | restart + service:启动、停止、重启服务
  • systemctl enable | disable + service:开机启动、开机不启动服务
  • systemctl status + service:查看服务的状态
  • systemctl is-active + service:查看服务是否启动
  • systemctl is-enables + service:查看服务是否开机启动

    备注:如果sshd服务被关闭了,那么所对应的22号端口也是关闭的,那我们就没法使用xshell远程连接linux
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945957.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号