关于linux进程的学习

关于进程和程序的区别和概念:

程序是一种静态的概念,本身作为一种软件资源长期保存。 进程是程序的执行过程,是一个动态的概念,有一定的生命期,是动态产生和消亡的。 程序和进程无一一对应关系。一个程序可以由多个进程共用;一个进程在活动中有可顺序地执行若干个程序。

父进程(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来过滤

这只是小弟学习的记录的一些笔记,发表只为激励自己学习,大家有问题请指正!

贪婪是最真实的贫穷,满足是最真实的财富

关于linux进程的学习

相关文章:

你感兴趣的文章:

标签云: