概述
一、Linux程序与进程目录
- 一、Linux程序与进程
- 1、程序,进程,线程的概念
- 2、程序和进程的区别
- 3、进程和线程的区别
- 二、Linux进程基础(生命周期)
- 1.进程生命周期
- 2、父子进程的关系
- 三、Linux进程管理工具
- 1 、pstree
- 2、ps
- 3、pgrep:
- 4、killall,kill,pkill
- 5、htop
- 6.vmstat
一、Linux程序与进程
1、程序,进程,线程的概念
程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行用来完成特定任务,是静态的;
进程:是运行着的程序,是操作系统执行的基本单位,是程序运行的过程, 是动态的,是有生命周期及运行状态的。是操作系统分配内存、CPU时间片等资源的基本单位。
线程:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。
2、程序和进程的区别
a:程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程;
b:进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程;
c:进程还具有并发性和交往性,而程序却是封闭的。
3、进程和线程的区别
a:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发拥有多个线程,而一个线程同时只能被一个进程所拥有;
b:线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。
二、Linux进程基础(生命周期)
1.进程生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程
ID(PID),PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd。
2、父子进程的关系
子进程由父进程产生,在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。
运行过程:子进程运行时父进程休眠。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境后,剩余释放不掉的资源称之为僵尸进程。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。
三、Linux进程管理工具
1 、pstree
用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁
先安装命令:yum install psmisc -y
用法:pstree [选项]
选项:
-A | 各进程树之间的连接以ASCII码字符来连接 |
---|---|
-U | :各进程树之间的连接以utf8字符来连接,某些终端可能会有错误 |
-p | 同时列出每个进程的PID |
-u | 同时列出每个进程的所属账号名称 |
2、ps
显示系统当前进程瞬间运行状态
用法:ps [选项]
选项:
-A | 所有的进程均显示出来,与 -e 具有同样的效用 |
---|---|
-a | 显示现行终端机下的所有进程,包括其他用户的进程 |
-u | 以用户为主的进程状态 |
-x | 通常与 a 这个参数一起使用,可列出较完整信息 |
-l | 较长、较详细的将该PID 的的信息列出 |
例子:列出当前执行机下的进程
3、pgrep:
查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程
用法:pgrep [选项] pidname
选项:
-l | 同时显示进程名和PID |
---|---|
-o | 当匹配多个进程时,显示进程号最小的那个 |
-n | 当匹配多个进程时,显示进程号最大的那个 |
例子:
注意:#pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程
- pgrep [选项] pidname //先查找进程号
- kill [选项] pid //用kill 结束进程
4、killall,kill,pkill
(1)kill
语法: kill [选项] pid // kill + 进程号
选项:
-l | 列出所有信号参数 |
---|---|
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-u | 指定用户 |
-p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s | 发送指定的信号 |
例子:列出信号详情及得到指定信号的数值
4、pkill、killall
pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序,如果想杀掉单个进程,请用kill来杀掉。
用法:
pkill/killall [选项] pid // pkill/killall + 进程号
5、htop
top:动态监控系统处理器状态,htop姑且称之为top的增强版
- 两者相比起来,top比较繁琐
- 默认支持图形界面的鼠标操作
- 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行
- 杀进程时不需要输入进程号等
//虚拟机上没有该命令,先安装。
#yum install epel* -y //安装epel源 #yum install htop -y //安装htop
例子如下:
各项解释:
上左区域:显示了CPU、物理内存和交换分区的信息;
上右区域:显示了任务数量、平均负载和连接运行时间等信息;
进程区域:显示出当前系统中的所有进程;这里同top显示一致
提示区域的各项含义:
- F1:显示帮助信息
- F2:配置界面中的显示信息
- F3:搜索进程
- F4:过滤器
- F5:以树形方式显示
- F6:排序方式
- F7:减小nice值
- F8:增大nice值
- F9:杀死进程
- F10:退出htop
6.vmstat
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
- vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。
例子如下:
以上字段含义:
注意:
如果评估CPU,需要重点关注procs项的 r 列值和CPU项的us,sy,wa列的值
最后
以上就是健康白昼为你收集整理的Linux程序与进程及其管理工具一、Linux程序与进程二、Linux进程基础(生命周期)三、Linux进程管理工具的全部内容,希望文章能够帮你解决Linux程序与进程及其管理工具一、Linux程序与进程二、Linux进程基础(生命周期)三、Linux进程管理工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复