processes 进程

  进程主要分为
用户进程 ->termial
守护进程 -> daemon 与终端无关的
调度进程   例如 at crond 命令的执行
 
进程一般是 INIT 发起的子进程,它的 pid 1 ,可以使用 pstree 命令查看
/proc 下可以查看进程信息
每个进程都有个 PID ,一般是 1-32767
 
 
PS 命令可以查看进程:
USER 表示发起用户
RUSER 表示实际上市由谁发起的
EUSER 表示使用的是谁的权限
PID 表示进程 PID
%CPU 显示 CPU 的使用率
%MEN 显示内存使用率
NI    nice 值,优先级
VSZ  虚拟内存大小占用
RSS 物理内存大小占用
TTY 那个 tty 发起的其中 ?是守护进程
STAT 进程状态
TIME 累积获得的 CPU 时间
COMMAND  哪个命令启动的子进程
 
 
其中 STAT 表示的进程状态
D 表示不可中断
R 正在运行或等待马上即可运行的
S 可中断的 sleep
T 中断状态停止状态
Z 僵死进程 例如一个进程的父进程被突然 KILL 了,他的子进程就变成僵死进程了 BUG 程序会导致
每个标志号都可以带上修饰符
< 表示高优先级
N 表示低优先级
L 锁定在内存中的
+ 前台运行的
l 表示多线程的
 
 
 
 
 
命令 PS 常用来查看进程
BSD 风格 , 一般不需要加上 -
a 和终端有关的
x 和终端无关的
u 显示用户相关信息
 
o 选项可以用户自定义显示,例如 只让显示与终端无关的 pid ,   ps  xo pid
 
还有另一种风格,需要加上 -
-e 全部进程
-f 所有信息
 
 
 
有个简练的命令,可以做选择的输出
Pgrep 支持正则表达式
Pgrep �CU root �Cv (反向,非该用户的)
-G xxx
-l  1   包含 1
 
如果知道进程名可以使用 pidof 进程名
 
 
 
信号!!! singal
Kill �Cl man 7 singal 可以查看信号
processes 进程_第1张图片
 
其中 2 中止相当于 ctrl+C
5 是优雅的中止
9 kill ,强行杀掉
15 相当于 CTRL+Z
 
 
Kill 可以用来杀掉进程,发出一个信号
Kill -9 XXX 表示强行杀掉一个进程
相当于 kill �Ckill xxx
 
Killall 进程名 可以杀掉所有相关的进程
-i 交互式
-v 支持正则表达式
 
 
 
 
 
Nice  可以调节一个进程的优先级
-20~19  值越小,优先级越高
Nice �Cn xxx (命令)
如果进程已经存在
Renice n �Cp pid 可以修改相对于 PID 的进程
 
 
 
 
 
使用 top 命令可以动态查看进程
 
其中 US   用户
Sy      内核
ni      nice
id    空闲
wa    等待
hi      硬件中断时间
si   软件中断时间
st   被偷走的(比如完全虚拟化的虚拟机占用)
mem
swap
 
 
top �Cb 批处理,换屏
top �Cn 2  刷新 2
-d 1       1 秒刷新一次
 
 
以上就是进程的基本知识
作业 jobs
使用 ctrl+z 可以把前台运行的程序放入后天
Jobs 可以查看当前后天运行的作业
Fg %n 即可调出后台的作业
Bg %n 则可以让后台的作业在后台运行
Kill    %n 可以 kill 掉一个作业
 
 

你可能感兴趣的:(职场,process,休闲)