什么是程序?
具备一个或多个计算机指令的文件,可以被计算机执行。
进程是什么?
进程是已启动的可执行程序的运行实例,进程有以下组成部分;
一个文件
被分配内存的地址空间
有权限限制
程序代码的一个或多个副本
程序代码的一个或多个副本(也叫执行线程)
像人一样拥有状态
了解进程的相关信息:
PID PPID
当前进程的状态 (RSTZ)
内存的分配情况
CPU和已花费的实际时间
用户UID,他决定进程的特权
进程名称
进程的生命周期:
由系统进程,fork出来的子程序。具备一定的父资源(权利,空间,PID)。直到运行完毕,退出系统
静态查看进程ps
ps aux 查看进程
ps aux | head -2 查看进程前两行
ps aux --sort %cpu 以cpu占比升序排列
ps aux --sort -%cpu 以cpu占比降序排列
ps -ef 查看进程的父子关系
ps axo user,pid,ppid 自定义显示想看的列
用户 进程id
VSZ:占用虚拟内存 硬盘
RSZ:占用实际内存
TTY:进程运行的终端 如果是?则证明是本机 如果是远程,则为pts/n
PID为子进程
PPID为父进程
进程状态
fork 父进程复制拷贝子进程
running 运行状态
stop 停止
sleeping 休眠状态
exit 退出
zombie 僵死状态
kill 杀死进程
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况
ps x 不以终端机来区分
动态查看进程top
top经常用于监控系统资源状况
top上半部分有 5行
第一行:top - 16:09:36 up 5:32, 2 users, load average: 0.01, 0.04, 0.05
程序名-系统时间 运行时间 登陆用户数 CPU负载 5 10 15
第二行:任务总数 各种状态
第三行:cpu占比
第四行:1024k=1m 1024m=1G mem 内存
第五行:swap 虚拟内存(硬盘上的空间)
top的下半部分
优先级 内存 内存 内存 运行时间 哪个程序
top常用内部指令
h|? 帮助
M 按内存的使用排序
Z 设置彩色,使用数字
< 向前 > 向后
top技巧
top -d 3 每隔三秒刷新一次
top -d 3 -p 2106 查看指定进程2106的动态信息
top -d 3 -p 2106,3 查看两个进程的动态信息
使用信号控制进程
信号种类
给进程发送信号(kill -l列出所有支持的信号)
kill -数字 进程
kill -1 8848 重新加载配置
kill -15 8793 终止进程
kill -9 6732 杀死进程
free -m 查看内存指令
进程优先级nice
简介:
linux进程调度及多任务
每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序
优先级范围和特性:
-20 ~ 19
nice值越高,优先级越低
nice值越低,优先级越高
在top中显示的优先级有两个:PR值和nicce值
PR=(nice+20)
启动具有不同nice级别的进程
sleep 5 让主机休眠5秒
sleep 5 & 在后台运行
nice -n -5 sleep 7000 & 设置优先级
renice -20 pid 调整优先级
ps axo pid,command,nice | grep sleep 查询优先级
查看系统优先级
top -d 1 -p pid
作业控制(后台运行)
将占领前台的指令通过&移动到后台
foreground (fg)前台进程:是在终端中运行的命令,占领终端
backgroud (bg)后台进程:没有控制终端,它不需要终端的交互,看不见,但是在运行
Ctrl +c 终止进程
sleep 5 & 移到后台
jobs 查看后台工作
fg 4 将后台进程4移到前台
Ctrl+z 立刻将前台程序丢到后台,但在后台为暂停状态(键盘暂停)
bg 4 将停止的程序继续运行
消灭后台进程:
kill %2 杀死作业序号为2的后台程序
虚拟文件系统proc
ls /proc/
简介: 采集服务器自身内核,进程运行的状态信息
CPU
/proc/cpuinfo
内存
/proc/meminfo
内核
/proc/cmdline