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
上述语句分别可以:
- 指定根节点。
- 可以额外展示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用来设置进程优先级。