首页 > 代码库 > Linux进程管理
Linux进程管理
在Linux中有哪些比较重要或常见的进程?
如何查看进程列表及使用资源情况?
如何杀死进程?
进程管理类命令:
pstree , ps , top , vmstat ,htop ,pmap
ps命令Process Status (report a snapshot of the current processes)
将某个时间点的进程运行情况选取下来
选项:
a:所有跟终端相关的进程
x:所有跟终端无关的进程
u:以用户为中心显示进程相关信息
e:显示所有进程
f:完整格式列表
F:显示额外信息
H:显示进程层次关系
o:自定义字段显示
常用选项:
ps -l:查阅自己的bash程序
输出:
F:进程标志(process flags)说明这个进程的权限
4:表示此进程的权限为root
1:表示此子进程仅可进行复制,而无法实际执行
S:进程的状态
R:运行中
S:睡眠,但可以被唤醒
D:不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况
T:停止状态
Z:(zombie)僵死状态
UID/PID/PPID:用户ID/进程ID/父进程的进程ID
C:CPU使用率
PRI/NI:priority/nice的缩写,表示优先级
ADDR/SZ/WCHAN:内存相关
ADDR是kernel function表示进程在内存的那个部分
SZ表示进程消耗的内存
WCHAN表示进程是否在运行
TTY:相关的终端,没有用"?"表示
CMD:command缩写,造成此程序被触发的命令
ps aux:查看所有运行程序
输出:
USER:用户账号
%CPU:CPU使用率
%MEM:占用实际内存比例
VSZ:虚拟内存大小 virtual memory size
RSS:非交互物理内存
STAT:
S:sleeping可中断
D:不可中断睡眠
R:运行或可运行
T:终止
Z:僵死
s:session leader
l:多线程进程
+:前台进程
N:低优先级进程
<:高优先级进程
START:改进程目前的状态,与ps -l中的S标识相同
TIME:改进程时间使用CPU运行的时间
COMMAND:改进程的实际命令
top命令 display Linux tasks
选项:
-d:后面跟秒数,就是整个进程解密更新的秒数,默认5秒
-b:以批次的方式执行top
-n:与-b搭配使用,表示执行几次top
-p:指定某个PID来监测
快捷键:
?:显示在top当前可以输入的按键命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序
N:以PID排序
T:按该进程使用CPU时间累积排序
k:给某个PID一个信号
r:给某个PID设定nice值
q:退出
输出:
PID:进程ID
USER:用户名
PR:priority 优先级,越小级别越大
NI:nice值,与priority有关,也是越小越早被执行
%CPU:CPU使用率
TIME+:CPU使用时间的累加
注意:
top默认排序按%CPU
htop命令
需要额外安装
pstree命令(display a tree of processes)
选项:
-A:各进程树之间的连接以ASCII字符来连接
-U:各进程树之间的连接以utf8字符来连接
-p:列出每个进程的PID
-u:列出每个进程的属主
进程间的通信:IPC
信号:signal
1 SIGUP 让进程不用终止,而重读其配置文件
2 SIGINT 中断正在运行的进程,相当于ctrl+c
9 SIGKILL 杀死进程
15 SIGTERM 正常终止进程
17 SIGSTOP 相当于ctrl+z暂停一个进程
查看帮助:man 7 signal
向其他进程传递信号,使用kill
kill -signal pid
kill可以将信号传递给某个job(%jobnumber)或者某个PID
Linux作业控制
jobs命令查看作业信息
ctrl+z:将作业从前台送往后台,同时进程会停止执行
bg jobid 进程将在后台运行
fg %jobid 调回前台
kill %jobid 杀死作业
Linux进程管理