我是靠谱客的博主 健康白昼,最近开发中收集的这篇文章主要介绍Linux程序与进程及其管理工具一、Linux程序与进程二、Linux进程基础(生命周期)三、Linux进程管理工具,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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进程管理工具所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(22)

评论列表共有 0 条评论

立即
投稿
返回
顶部