10-进程管理
一.进程概念
程序—>代码文件
进程—>
描述方式1:程序的运行过程
描述方式2:操作系统控制着硬件去运行程序的过程
进程是操作系统最核心的概念
并发:多个任务看起来是同时运行的即可
并行:多个任务是真正地同时运行(只有多核才能实现并行)
线程:进程内代码地执行过程
线程才是cup的执行单位,一个进程内至少有一个线程
强调:cpu是运行代码,不是做IO的
一个进程的多个线程共享该进程的内存资源
不同进程的多个线程的内存资源相互隔离
任务的三种运行状态
运行态
就绪态
阻塞态
ps:非阻塞与阻塞
提交任务的方式
同步
异步
二.进程命令
route -n:查看网关信息
ps aux |grep 进程名 # tasklist | findstr 进程名(windows)
R:运行
S+:可中断状态,即在睡眠状态中可以接受硬件设备的响应(正常IO)
D:不可中断状态,即在睡眠状态中不可以接受硬件设备的响应(太忙)
T:停止的进程(ctrl+z停止)
z:僵尸进程
x:死掉的进程(几乎看不见)
<:标注了<小于号代表优先级较高的进程 # nice -n -20 sleep 3000 &
N:N代表优先级较低的进程 # nice -n 19 sleep 5000 &
s:包含子进程
+:+表示是前台的进程组
ps -elf:查看进程号和父进程号‘
ps -elf |grep nginx:查看nginx的具体进程号和父进程号信息
ps aux |grep egon
pgrep -l -u egon:查看由egon用户启动的进程信息
pstree:进程树
pstree |less:进程树翻页
pstree 进程号:查看具体进程
top:实时查看进程信息
命令行选项
top -d 刷新时间s -p pid # 只看某一个进程信息
top -d 刷新时间s -u 用户 # 只看该用户开启的所有进程信息(top -d 1 -u egon:实时1秒查看用户egon启动的进程信息)
内部命令
s # 修改刷新时间,单位是秒,可以是0.0001s,建议不要设置太小,否则会过度消耗cpu
q # 退出
排序
M 按照内存占用率从大到小排序
P 按照CPU占用率从大到小排序
N 按照PID从大到小排序
配合R代表倒序
shift + > # 移动排序字段
shift + < # 移动排序字段
按上下键查看所有进程
f # 增加显示字段
k # 给进程发信号
kill命令
ps aux |grep vsftpd:查找vsftpd的进程号
kill 【-15】进程号:终止vsftpd的服务进程
kill -9 进程号:强制杀死vsftpd的服务进程
pill -9 vim:强制杀死一系列vim的服务进程
kill -stop 进程号:停止vim的服务进程(s—>T)了解
kill -cont 进程号:继续开启vim的服务进程(T—>s)了解
三.hup信号处理
1.ping www.baidu.com &>/dev/null &:先不着急关闭窗口,exit或nohup退出后
2.ps -elf |grep [p]ing:查看ping命令的父子进程,父进程变为1
或
1.nohup ping www.baidu.com &>/dev/null &:直接x掉命令行窗口
2.ps -elf |grep [p]ing:查看ping命令的父子进程,父进程变为1
或
1.setsid ping www.baidu.com &>/dev/null &
2.ps -elf |grep [p]ing:查看ping命令的父子进程,父进程直接为1
或
1.(ping www.baidu.com &>/dev/null &)
2.ps -elf |grep [p]ing:查看ping命令的父子进程,父进程直接为1
screen vim a.txt
screen -ls:查看screen命令启动的服务进程‘
screen -r 进程号(进程名):恢复screen命令启动的服务进程(ctrl+a,ctrl+d快捷键,暂停程序运行)
screen -S new_s:创建一个screen命令窗口
screen -ls:查看screen命令启动的服务进程信息
screen -x new_s:另外一台连接同一个服务器的机器,连接screen命令窗口,实现同步效果
四.查看系统状态
nestat -tunalp:查看网络状态
nestat -an:同上
lsof -i:22:查看22端口信息
route -n:查看网关信息
du -sh /etc/:查看/etc文件夹大小
df:查看硬盘信息
df -h:同上
df -T:同上
free:查看内存信息
free -m:查看内存信息,换算成mb单位
free -wm:详细查看内存信息(buffers,cache)
free -w
释放buffer缓冲内存:
1.sync执行多次(强制写入硬盘)
2.echo 3 > /proc/sys/vm/drop_caches
lscpu:查看cpu完整信息
cat /proc/cpuinfo
grep "processor" /proc/cpuinfo :查看cpu核数
管道相关:
ifconfig &>a.txt:输出重定向
ifconfig | tee b.txt
五.僵尸进程与孤儿进程
1.kill -CHLD 父进程pid(父进程向操作系统发送清除信息)
2.kill -9 父进程pid(杀死父进程的方式可以清理僵尸进程)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用