每日Linux——jobs与控制

  一、进程的状态

          程序执行时,即是一个进程。在Linux中,有父进程和子进程的概念,子进程继承父进程的安全性身份、文件描述符和端口资源特权等 ,子进程在执行时,父进程通常处于睡眠状态,当子进程执行完毕,父进程会被唤醒。

        通常来说,程序的状态及其变化图可以用下图来表示,其中黄色小球中的字母代表的就是程序的状态简写。

R:进程处于Running或者可Running的状态

T:进程处于Stopped的状态

Z:进程处于僵尸状态,这种状态为程序exit之后,等待父进程回收的状态。进程exit退出后,进程占用的内存和其他资源会被回收,同时在操作系统的process table中依旧保留一条记录(存储PID, termination status, resource usage information),此时进程的状态是zombie / defunct的 。父进程会使用waitpid系统调用,回收处于zombie状态的子进程,回收后进程的信息才会从process table去除

S:进程正在等待某一条件实现的状态,此时可以被打断

D:不会响应信号的睡眠状态,仅在进程中断会导致意外的情况下进入

K:只可以响应彻底退出信号

I:等同于D

X:彻底释放的状态,通常看不到

二、进程状态的查看

进程状态的查看使用ps命令,其语法十分简单,如下所示:

最常用选项主要包括

1. 使用ps -ef列出全部进程及其详细信息:

  • 列出所有进程:

  • 列出全格式 

2.使用ps aux列出全部进程及其详细信息

 简而言之,ps -ef是system v的风格,ps aux则是bsd风格的

三、进程的控制与监控

1.kill命令

kill命令是使用信号对进程进行控制,主要是停止进程,其使用的语法主要如下所示

SYNOPSIS
       kill [-s signal|-p] [-q sigval] [-a] [--] pid...
       kill -l [signal]

一般来说,直接使用:kill -[number] [PID]的形式,其中不同的数字具有不同的代表意义:

        1:HangUP,终端断线

        2:类似于键盘输入ctrl+c以中断进程,该信号可以被程序自定义处理,也即可以被程序忽略不执行,通常使用于程序初始化

        9:强制终止,不管处于什么状态,强制执行

      15:普通终止,等程序安排好之后自身的任务后执行终止

      18:继续执行已暂停的进程

      19:暂停程序,类似于ctrl+z

2.top命令

使用top命令可以实时监控进程状态,其对应会显示基本情况包括

  • 常规使用技巧:

        按1:查看单个cpu的具体使用信息

        按M:按照内存使用信息排序进程

        按f:选择需要显示的进程信息项目,自定义显示进程信息

  • 负载情况计算

        负载计算需要根据cpu数量来,先执行lscpu查看cpu数量,例子图片中为4

        

        top命令查看平均负载量分别为 0.19、0.20、0.18,即可计算出平均单个cpu负载在平均1、5、15分钟内分别为0.19/4=0.0475,0.05,0.045,这个数据要跟1去做比较,可简单理解为cpu负载在4.75%,5%,4.5%

      

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值