一、进程
1、进程:是程序的副本,活体,用的虚拟内存空间是线性的,不是物理内存。任何一个进程都认为自己是内存中是唯一独立存在的,不会意识到其它进程的存在
一个进程可以生成其它进程,除了1号进程init,所有的进程都有父进程
2、系统角度而言:识别进程是靠进程名和其进程号(pid)
3、进程优先级:高优先级占用的时间不一定就很长,交互式(输入输出i/o的作业)的优先级较高
进程有静态的(0-99)不能调整
动态的(100-139)可以调整
4、调整进程优先级:Nice值(-20到19)与动态进程相符:让出自己的优先级,值越小优先级越高
普通用户Nice值只能调高不能调低,root都可以
5、nice值的调整有两种:1 在系统启动时就调整# nice -n 3 bash(进程名)默认为0
2 调整已经启动的进程 # renice 数字 进程号 (renice 0 8669)
二、线程
线程(thread):轻量级的、实现并执行某些程序
三、命令
1、查看进程的命令:
PID 进程号 TTY:?表示守护进程 TYPE:进程占用时间 CMD:发起该进程的命令
ps –f 现实的更为详细栏位更多(--F与其相似)
PID为1 init父进程 有他生成其他进程是系统的原始的进程
ps –u 用户名 显示具体用户的发起的进程
ps -j 用任务格式来显示进程
ps –H 显示父子进程的关系
ps -o pid,uid 可以根据用户自定义的显示字段
2、常用组合
ps –ef ps –ejH 以作业的方式显示子父进程的关系
ps axjf(x 后台运行的进程)显示进程树关系
ps后面加---和不加是两种不同的风格 加 –的是标准格式sys –v 不加的是伯克利风格(BSD)
pstree 显示进程树关系
状态显示中符号的表示意思
< 高优先级的进程
N 低优先级的进程
+ 前台进进程组的进程
小写s 会话的发起者
小写l 支持多线程的进程
3、进程的状态
运行态(R) 就绪态(R) 停止态(T) 睡眠态 (S ) 僵死态(Z)
睡眠态又分为 可以中断的睡眠 和不可以中断的睡眠
僵死态是:进程中断时有其父进帮助收回资源,这中间的过程就是僵死态 ;父进程 不帮助收回也是僵死态
僵死态分为 发起信号就可以唤醒 和进程自己想来否则不会被唤醒
4、pgrep 基于名称或其他属性显示进程
四、进程间通信
由于进程之间感觉不到其他进程的存在就要用到进程间通信IPC :通过发信号实现
1、显示发送信号
kill –l
9 ):不发送信号就直接杀死进程
15 ):在杀死进程前会有提示信号
1 ):通知某个服务进程重新加载配置文件
2): 打断
kill -9 pid (kill掉多个进程pid之间可以用空格键)
pkill 做匹配 匹配到的就杀掉
kill pid 可以忽略信号 暂时不进行 除了9和15
向另一个进程发送加载配置文件的信号方式有三种:
(1) kill -1 PID
(2) kill -SIGHUP PID
(3) kill -HUP PID
killall 进程名 包含进程名的都kiil掉
五、作业jobs
作业job 分为前台的和后台的(& 进程后台运行释放前台资源)
jobs 查看当前运行的作业
1、将前台作业送到后台运行 bg 或ctrl +z 送到后天运行的jobs会停止运行 要在后台继续运行可以 bg %5
2、fg 则与之相反 fg %2 选择作业号为2的调到前台
3、将作业终止 kill %3(可以使作业号也可以是进程号)
4、nohup cp –r /etc /tmp & 复制/etc 到/tmp目录下,即使logout了也不会终止会继续运行
转载于:https://blog.51cto.com/jingmu/463915