关于进程和程序的区别和概念:
程序是一种静态的概念,本身作为一种软件资源长期保存。
进程是程序的执行过程,是一个动态的概念,有一定的生命期,是动态产生和消亡的。
程序和进程无一一对应关系。一个程序可以由多个进程共用;一个进程在活动中有可顺序地执行若干个程序。
父进程(ppid)与子进程(pid)之间的关系:
1、子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。
如父进程终止,子进程没终止,子进程会变成孤儿进程,他的父进程会自动指向init。
如子进程终止,父进程却没检测到,子进程会变成僵尸(z)进程。
2、产生子进程会使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境,子进程会进行继承。
3、父进程终止子进程自然终止。
关于前台进程和后台进程:
前台进程指在前台进程,用户在它完成之前不能执行另一个命令。
后台进程指在后台运行,在shell提示处打入命令后加入一个&,和shell同步运行。(后台进程必须是非交互式的)
jobs 观察目前的后台工作状态
-l 除了列出job number 与指令串之外,同时列出PID的号码
-r 仅列出正在背景run的工作
-s 仅列出正在背景当中暂停的工作
fg 观察前台的工作状态
%jobnumber :为工作号码,%可有可无
bg 让工作在后台下的状态变成运行中
kill 关闭进程
-l 列出目前kill能够使用的的讯号(signal)有哪些
-1:重新读取一次参数的配置文件
-9:立刻强制删除一个进程
-15:以正常的程序方式终止一项工作。
ps 查看当前时间段的程序运作情况
-A:所有的进程均显示出来,与-e效果相同
-a:不与终端有关的所有进程
-u:有效使用者相关的进程,一般与x一起使用,可列出较完整的信息。
l:详细的将该PID的信息列出与-e一起使用
如使用ps -l仅列出与你的操作环境(bash)有关的程序
ps -l 所显示出的资料
F(flags):代表这个程序旗标,说明这个程序的总结权限:
若为4表示此程序的权限为root
若为1则表示此子程序仅进行复制而没有实际执行
S(stat):代表这个程序的状态,主要状态有
R(running):正在运行
S(sleep):睡眠状态,可以被唤醒
D:不可被唤醒的睡眠状态
T(stop):停止状态
Z(zombie):僵尸状态
UID/PID/PPID:程序拥有者/程序的PID/此程序的PPID
C(cpu):代表cpu使用率,单位为百分比
PRI/NI(priority优先级/nice):代表此程序被CPU所执行的优先级,数值越小优先级越高,NI范围为(-20 ~ 19)而普通用户能设置的NI范围为(0~19)。
ADDR(核心函数)/SZ/WCHAN:ADDR指出该程序在内存的那个部分,如果是个正在运行的程序,一般会显示“-”/SZ代表此程序用掉多少内存/WCHAN表示目前程序是否运作,运行则表示“-”
TTY:登入者的终端机位置,远程登录则使用动态终端接口(pts/n)
TIME:实际使用掉的CPU时间
CMD(command):所触发程序之指令是什么。
ps aux 观察系统所有程序
各字段的意义为:
USER:该进程属于哪个使用者账号
PID:进程的程序标识符
%CPU:该进程使用掉的CPU资源百分比
%MEM:该进程所占用的物理内存百分比
VSZ:该进程使用掉的虚拟内存(Kbytes)
RSS:该进程占用的固定内存量(Kbytes)
TTY:该进程是在哪个终端机上面运作,与终端无关显示?, tty1-tty6是本机上面的登入者程序,若为pts/n等,则 表示远程连接。
STAT:该程序目前状态,与ps -l相同
START:该进程被触发启动的时间
TIME:该进程实际使用CPU运行的时间
COMMAND:该程序的实际命令
top:动态观察程序的变化(默认为5秒更新一次)
-d(date):后面接描述,是整个程序画面更新的秒数
-b:以批次的方式执行top?
-n:与-b搭配,意义是,需要进行几次top的输出结果
一般top命令动态显示不能全页显示 可利用
top -b |more 来批次的分页显示 这样查看的就是最新的数据
在top执行过程当中可以使用的按键指令:
?:显示在top当中可以输入的按键指令
p:以cpu的使用资源排序显示
M:以内存的使用资源排序显示
N:以PID来排序
T:由该进程使用的cpu时间累积排序
k:给予某个PID一个信号(signal)
r:给予某个PID重新定制nice值
q:离开top
uptime:观察系统启动时间与工作负载(top显示信息的第一行)
pstree 查看进程树
-A:各进程树之间的连接以ASCII字符来连接
-p:同时列出每个进程的PID
-u:同时列出每个进程的所属账号名称
killall 关闭进程
killall可以关闭相应指令的名称,kill只能关闭对应程序的ID
-i(interactive):交互式的,需要删除时会出现提示字符
nice 开始执行程序就立即给予一个特定的nice值
renice:调整已存在进程的nice值
root调整nice范围为(-20~19)普通用户为(0~19)
-n 指定数值
free:观察内存使用情况
-t 在输出的最终结果,显示物理内存与swap的总量
uname:查阅系统与核心相关信息
-a:所有系统相关的信息
netstat:追踪网络或插槽文件
-a:将目前系统上所有的联机、监听、socket(接口)都列出来
-t:列出tcp网络风暴的数据
-u:列出udp网络封包的数据
-l:列出正在网络监听(listen)的服务
-p:列出该网络服务的程序PID
dmesg:分析核心产生的讯息
可利用 dmesg |more分页查看 或|grep来过滤
这只是小弟学习的记录的一些笔记,发表只为激励自己学习,大家有问题请指正!
转载于:https://blog.51cto.com/aixia/884664