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

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.lryc.cn/news/496136.html

相关文章:

  • Spring Boot 项目集成camunda流程引擎
  • 2024.12.2工作复盘
  • Hot100 - 二叉树的中序遍历
  • docker build ubuntu ssh
  • 三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序
  • day01(Linux底层)基础知识
  • flink学习(13)—— 重试机制和维表join
  • 第三方Cookie的消亡与Google服务器端标记的崛起
  • 微信小程序——文档下载功能分享(含代码)
  • Burp Suite 全面解析:开启你的 Web 安全测试之旅
  • Oracle DataGuard 主备正常切换 (Switchover)
  • 为什么编程语言会设计不可变的对象?字符串不可变?NSString *s = @“hello“变量s是不可变的吗?Rust内部可变性的意义?
  • 安装 RabbitMQ 服务
  • 爬虫—Scrapy 整合 ChromeDriver 实现动态网页拉取
  • Linux 进程管理详解
  • MySQL更新JSON字段key:value形式
  • vue.js学习(day 18)
  • WINDOWS 单链表SLIST_ENTRY使用
  • 【Linux 篇】Docker 容器星河与镜像灯塔:Linux 系统下解锁应用部署奇幻征程
  • 不同云计算网络安全等级
  • 手机实时提取SIM卡打电话的信令声音-蓝牙电话如何适配eSIM卡的手机
  • 视频流媒体服务解决方案之Liveweb视频汇聚平台
  • 【在Linux世界中追寻伟大的One Piece】多线程(三)
  • mvc命令
  • 17 go语言(golang) - 错误处理
  • PG 库停库超时异常案例
  • redis下载、基础数据类型、操作讲解说明,持久化、springboot整合等
  • [代码随想录06]哈希表的使用,有效字母异位词,两数组交集,快乐数,两数之和
  • 【CSS】一篇掌握CSS
  • 分层图最短路