什么是进程
在Linux中触发任何一个事件,系统都会将它定义为一个进程,并且给予这个进程一个ID,称为PID(Process ID),同时根据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置,操作系统中对进程的定义如下:
进程(process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,即进行中的程序或运行中的程序,也就是程序的一次实例化
程序(program):存储在磁盘上的二进制可执行文件,程序员编写源代码文件,由编译器编译链接生成的文件。Windows上可执行程序是.exe文件,Linux上是a.out文件(ELF格式的文件)
执行一个程序,生成进程
路径 可执行文件名 #./程序有文件名称,表示前台执行,必须等待进程执行结束
路径 可执行文件名 & #./程序文件名 &,表示后台执行
查看进程
ps #查看 Linux 中当前运行的进程
jobs #查看当前终端的后台任务 任务号 任务状态 任务名称
ps aux #查看系统所有的进程
ps -A #所有的进程均显示出来,与-e具有同样的效果
ps -e #所有的进程均显示出来
ps -a #不显示与终端有关的进程
ps -l #较长、较详细的将该PID的信息列出
ps -f #做一个更完整的输出
ps -l会列出与你的操作环境(bash)有关的进程,显示的如下:
上图中ps -l命令下面一行的含义如下:
结束一个进程
kill pid #结束进程标识符为pid的进程
pkill cmd #结束一组相同cmd的进程
kill -9 pid #强制结束一个进程
挂起一个进程
kill -stop pid
唤醒
bg 任务号 #将任务唤醒到后台执行
fg 任务号 #将任务唤醒到前台执行
top:动态查看进程的变化
ps命令是选取一个时间点的进程状态,top则可以持续监测进程运行的状态,使用方式如下:
top -d 数字 #数字表示秒数,整个进程界面更新的秒数,默认是5秒
top -b #以批量的方式执行top
top -n #与-b搭配,意义是需要执行几次top的输出结果
top -p #指定某些歌PID来执行查看监测
在top执行过程当中可以使用的按键命令如下:
? #显示在top当中可以输入的按键命令
P #以CPU的使用排序显示
M #以Memory的使用排序显示
N #以PID来排序
T #由该进程使用的CPU使用时间累积(TIME+)排序
k #给予某个PID一个信号(signal)
r #给予某个PID重新制定一个nice值
q #退出top的按键
执行top命令默认显示如下图(数据是动态变化的):
top的功能非常多,可以使用man top命令来查看它的说明文档
参考书籍
《鸟哥的Linux私房菜》第16章 进程管理与SELinux初探