进程主要分为 :
用户进程 ->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 –u root –v(反向,非该用户的)
-g xxx
-l 1 包含1的
如果知道进程名可以使用 pidof 进程名
信号!!!singal
kill –l 和man 7 singal 可以查看信号
其中2中止相当于ctrl+c
5是优雅的中止
9 kill,强行杀掉
15相当于ctrl+z
kill可以用来杀掉进程,发出一个信号
kill -9 xxx表示强行杀掉一个进程
相当于kill –kill xxx
killall 进程名 可以杀掉所有相关的进程
-i 交互式
-v 支持正则表达式
nice 可以调节一个进程的优先级
-20~19 值越小,优先级越高
nice –n xxx(命令)
如果进程已经存在
renice n –p pid可以修改相对于pid的进程
使用top命令可以动态查看进程
其中us 用户
sy 内核
ni nice值
id 空闲
wa 等待
hi 硬件中断时间
si 软件中断时间
st 被偷走的(比如完全虚拟化的虚拟机占用)
mem
swap
top –b 批处理,换屏
top –n 2 刷新2次
-d 1 1秒刷新一次
以上就是进程的基本知识
作业 jobs
使用ctrl+z可以把前台运行的程序放入后天
jobs 可以查看当前后天运行的作业
fg %n 即可调出后台的作业
bg %n 则可以让后台的作业在后台运行
kill %n 可以kill掉一个作业