当前位置: 首页 > article >正文

Linux学习笔记13 系统进程管理

前文

Linux学习笔记10 系统启动初始化,服务和进程管理(上)-CSDN博客

Linux学习笔记11 系统启动初始化,服务和进程管理(下)-CSDN博客

Linux学习笔记12 systemd的其他命令-CSDN博客

之前学习了怎么使用systemd的其他模块命令。

一个linux系统从启动到运行,从bios之后读取分区表进入引导程序grub到内核阶段加载文件系统,到系统的第一个用户空间程序初始化程序init或者systemd,到最后被启动的各项服务。

大部分的服务是以进程的形式存在于主机上。

PS命令

直接从命令上手会很快

ps有很多选项。它的格式大致如下:

ps [option]
-a:显示所有活动进程的当前状态
-A:显示所有进程的当前状态
-e:等同-A
-f:显示完整信息
-l:显示详细信息
-g:指定用户组
-p:指定id
-u:指定用户id或者用户名

默认情况下,显示当前用户的进程哦。

最常用:

ps -ef

pstree命令

将进程启动关系用树形图展示:

pstree pid
pstree -P

上述语句分别可以:

  1. 指定根节点。
  2. 可以额外展示pid。

Top命令

动态(每3秒刷新)展示cpu占用最高的几个进程。注意熟练使用此命令可以很舒适的完成监控系统的任务。

Top -d #-d可以指定刷新时间
进程号 USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   
USER:运行该进程的用户的名称。
PR:进程的优先级(Nice值)。
NI:进程的nice值(优先级)。数值越低,表示优先级越高。
VIRT:进程占用的虚拟内存总量,单位为KB。
RES:进程占用的物理内存总量,单位为KB。
SHR:进程占用的共享内存量,单位为KB。
%CPU:进程使用的CPU时间百分比。
%MEM:进程使用的物理内存百分比。
TIME+:自进程启动以来所使用的CPU时间,单位为分钟。
COMMAND:启动进程的命令名。

其中有一列为S标注的是进程状态:

DRSTZ。分别为不可中断的休眠,正在运行,休眠,暂停,终止但未善后。

此时可以按b键显示正在运行的进程。

X可以改变排序方向

shift+>可以向右改变排序字段,向左则反之shift+<

退出该界面按Q。

还可以按F,S,D,1等。

  • F(或 f):进入字段选择界面,用户可以在这里选择哪些列应该显示在top的输出中。
  • S:按CPU使用率排序。按s会将列表按 %CPU 列排序,默认情况下是降序(使用最多CPU的进程排在最前面)。
  • D:按驻留内存使用量(RES)排序。按d会将列表按 RES 列排序。
  • M:按内存使用率(%MEM)排序。按m会将列表按 %MEM 列排序。
  • N:按进程ID(PID)排序。按n会将列表按 PID 列排序。
  • 1:显示所有CPU的负载。按1可以切换显示每个逻辑CPU的单独统计信息。

还可以直接在这个界面杀死进程,使用k。之后输入pid回车即可

改变进程优先级使用r。

kill命令

kill pid

超级常用的命令。

它的功能是使用一个信号通知进程终止。

kill [option] pid

 -l可以列出所有信号。

kill -15 22等同于kill 22

kill [-signal] PID

选定信号发送给进程来终止进程。默认信号为15,进一步可以使用9但是不推荐使用在数据库等进程需要数据同步等操作这一类上。

nice命令

用一个指定的进程优先级去执行命令

nice [option] [command]
#renice 可以用来调整已存在进程的优先级

普通用户可以降低,超级用户才能提高。

默认优先级为10。

renice -n priority -g/-p/-u identifier 

-n可以省略。

renice +1 -p 1111
#将1111号进程优先级改为1.
renice 19 -g myfriend
#把用户组myfriend的所有进程优先级改为19

普通用户最多设置0-19,超级用户可以设置0-20.

总结

ps可以知道process status,ps -ef超级常用。

kill很经典的杀进程方法,可以指定信号传递给进程使之终止。

nice和renice用来设置进程优先级。


http://www.kler.cn/a/420164.html

相关文章:

  • Navicat连接SQL Server及SpringBoot连接SQL Server(jtds)
  • python学opencv|读取视频(一)灰度视频制作和保存
  • yarn install遇到问题处理
  • 第1章:CSS简介 --[CSS零基础入门]
  • zerotier实现内网穿透
  • 数据结构__01
  • Javaweb梳理20——Tomcat
  • 创建一个vue前端项目
  • float globalMapVIsualizationLeafSize; 的中文意思是什么
  • leetcode——移除数组
  • 关于开设人工智能教育的培训笔记
  • 如何确保爬虫程序的稳定性和效率:Java爬虫实践
  • 兔子繁衍问题
  • 今天我们来聊聊Maven中两个高级的概念—— 插件和目标
  • SprinBoot整合KafKa的使用(详解)
  • 编译器优化技术
  • 【工具变量】上市公司企业金融错配程度数据(1999-2022年)
  • MySQL查看日志
  • 16asm - 汇编介绍 和 debug使用
  • transformers gpt2 语言模型
  • Java与AWS S3的文件操作
  • spring boot+jpa接入达梦数据库
  • 《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定
  • Spring源码导入idea时gradle构建慢问题
  • 初识QT第一天
  • 使用C#开发VTK笔记(一)-VTK开发环境搭建