进程管理
1、进程概念
进程是操作系统分配资源的单位,线程是调度的基本单位描述一:进程是一个实体,每一个进程都有它自己的地址空间
描述二:进程是一个“执行中的程序”
并发:多个任务看起来同时运行的
并行:多个任务同时运行,多核才可以
线程:所有线程共享进程的资源,cpu上的执行单位
任务的三种运行状态:
运行态
就绪态
阻塞态
提交任务的方式:
同步:必须等待另一个任务执行完成才能执行
异步:两个可以同时执行任务
Linux的进程状态
R运行状态(running)
S睡眠状态(sleeping)可中断睡眠
S状态与S+状态
前台进程:带+
后台进程:不带+
不能ctrl c关闭;只能kill关闭;可以输入其他命令
D磁盘休眠状态(Disk sleep)不可中断睡眠状态
T停止状态(stopped)
t :追踪停止状态
程序停在断点处时,就是t状态
T状态由外部信号直接触发,适用于一般进程控制
t状态则由调试器间接管理,专为调试服务
X死亡状态(dead)
Z 僵尸状态(zombie)
< 代表优先级较高的进程
N 代表优先级较低的进程
s 包含子进程
+ 前台进程
2、查看进程信息
ps aux|grep(Linux) tasklist|findstr(windows)ps -elf #查看父进程id
pstree
top
命令选项
top -d 刷新时间s -p pid #只看某一个进程的信息
top -d 刷新时间s -u 用户 #只看某一个用户的进程信息
内部命令
s #刷新时间s
q #退出
f #增加选中的字段
k #发送信号
排序
M #按内存占用率从大到小排序
P #按CPU占用率从大到小
N #按照PID从大到小
配合R代表倒序
3、管理进程
1、优先级设置NIPRI(动态) = PRI(静态) + NI
内核里静态基准一般是 20
nice -n [-20最高,19最低] 命令
renice
2、给进程发信号
kill
1、SIGHUP
9、SIGKILL
15、SIGTERM
kill -1 进程号(平滑重启服务)
kill -9 进程号(强制杀死进程服务)
kill -15 进程号(杀死进程服务)
3、hup信号->如何让进程脱离当前终端运行
nohup
nohup command &
setsid
setsid command
在子shell中提交任务
(command &)
screen命令
screen command
4、查看网络状态
netstat5、proc文件系统
查看文件大小du -sh /etc
查看硬盘状态
df
查看内存状态
free #/proc/meninfo
查看cpu状态
lscpu #/proc/cpuinfo
6、管理后台进程(了解)
jobsbg %1
fg %1 #后台进程1提交到前台
7、管道
|
xragsT型管道:tee用于从标准输入读取数据,并将其同时写入到一个或多个文件以及标准输出(通常是终端屏幕)
8、僵尸进程(Zombie Process)与孤儿进程(Orphan Process)
僵尸进程是已终止但未被父进程回收资源的子进程,其进程描述符(PID)仍保留在系统进程表中,但不再占用内存或CPU资源。孤儿进程是父进程运行结束,但子进程还在运行。顶级进程 1 init或systemd
清理僵尸进程
1、杀死父进程
2、向父进程发送 SIGCHLD 信号,让其调用 wait(),支持这个信号的进程
kill -CHLD(18) 父进程PID
如有问题请联系我 QQ:1021395023

浙公网安备 33010602011771号