Linux进程管理


一、 什么是进程

1、进程与程序

1)程序与进程关系

  • 程序:可执行的二进制文件,通常以物理文件形式存在。

  • 进程正在执行的程序

    程序转换成进程过程如下:
    在这里插入图片描述

2)子进程与父进程 PID PPID

在当前bash环境中,生成第二个bash,执行ps -l查看进程相关信息。
在这里插入图片描述
发现原bash(父进程)的 PID 新bash(子进程)的 PPID 相同

说明第二个进程是由第一个进程产生的。

3)fork and exec 程序调用流程

  • fork :复制子进程(多一个PPID)

  • exec:临时进程以exec方式来执行世界要执行的程序,成为一个子进程。

    流程如下:
    在这里插入图片描述

2、多人多任务环境

多重登录:ALT+ F1 … F6。
关闭死掉的文件:先 ps -aux 找出错误,然后 kill。

二、任务管理

1、什么是任务管理

当我们登录系统获取 bash shell 后,在单一终端同时执行多个任务的操作管理。

执行bash任务管理的限制

  • bash:任务触发的进程必须来自你shell的子进程(只管理自己的bash)
  • 前台:可以让你操作的环境。
  • 后台:自动执行的。
  • input:后台不能等待 终端 和 shell 的输入

2、job control 的管理

  • 后台运行: &
    特殊情况:后台执行 vim 时,无法看到提示字符,且无法ctrl c停止。
    解决方法:利用数据流重定向,将输出数据传送。

  • 前台暂停:ctrl z

  • 查看后台任务状态:jobs

    在这里插入图片描述

    • -l (显示命令串 + PID)
    • -r(显示后台运行的任务)
    • -s(后台暂停的任务)
    • +是默认使用任务
    • -是第二个任务
  • 后台拿到前台:fg (%) 任务号

    在这里插入图片描述
    在后台执行一个休眠100秒任务,任务号为4号。使用 fg 4 命令,将它调到前台执行

  • 后台运行:bg % 任务号

    在这里插入图片描述
    仍是这个休眠任务,在前台执行后停止,再使用 bg 4 命令在后台执行

  • 管理后台当中的任务:kill

    • kill - l(显示能适应的信号有哪些)
    • kill - 1(重新读取)
    • kill - 9 (强制删除)
    • kill - 15(正常删除,默认值)

    杀死一个休眠1000秒的程序:
    在这里插入图片描述

3、脱机管理问题

脱机注销后希望任务能继续执行

  • nohup [命令与参数] ( 在终端前台执行 )
  • nohup [命令与参数] &( 在终端后台执行 )

    在这里插入图片描述
    会出现如下情况:
    在这里插入图片描述
    nohup与终端无关,该信息会被重定向到【~/nohup.out】。

nohup 不支持 bash内置的命令,命令必须是外部命令

三、进程管理

  • 进程权限与能否执行任务相关。
  • 如何寻找最耗费系统资源的进程,使系统正常使用。
  • 如何找出有问题的进程。
  • 如何让优先级高的先运行。

1、查看进程

  • 静态显示进程:ps
参数指令作用
-A显示所有进程
-e同上
-a不显示与终端有关的进程
-u使用者进程
- x与a连用

输出格式:

  • -l:详细信息
  • -j:任务的格式
  • -f:更完整的输出

两个常用指令:
ps -l:查看自己bash进程
在这里插入图片描述
ps aux:所有系统运行进程
在这里插入图片描述

  • 动态显示进程:top
指令作用
-d后面跟刷新的秒数,默认5秒
-b以批量的方式执行top
-n与b搭配使用,执行次数
-p指定某个PID
  • 每四秒刷新一次top

    在这里插入图片描述在这里插入图片描述

    进入top后的 按键命令:

参数指令作用
- ?显示所有可使用的命令
- P以cpu排序
- M同时列出每个进程的PID
- - N以PID排序
- - T使用CPU时间排序
- - k给PID信号
- - r给PID nice值
- q退出

指定某PID查看:

在这里插入图片描述
修改NICE值:
在这里插入图片描述

  • 寻找进程之间相关性:pstree
参数指令作用
- A以ASCII字符连接
- U以Unicode字符链接
- p同时列出每个进程的PID
- u列出进程所属用户
  • 使用命令时可能会遇到这种情况:
    在这里插入图片描述
    说明pstree未安装

    我们可以通过这条指令安装pstree
    在这里插入图片描述

2、进程管理

代号名称项目内容
1SIGHUP启动被终止的进程
2SIGINT中止进程
9SIGKILL强制终止,保留半成品
15SIGTERM正常终止
19SIGSTOP暂停
  • kill -signal PID

    PID两种模式:
    1、直接输入数字
    2、% jobnumber 专门用于进行任务管理

  • killal -signal 命令名称

    例如:杀死所有sleep进程。
    在这里插入图片描述
    例如:依次选择性杀死所有bash进程
    在这里插入图片描述

3、进程执行顺序

  • PRI 与 NICE 值

    PRI:优先级,PRI越低,优先级越高。

    NICE: PRI通过系统内核动态调整,用户无法自行调整。修改NICE值,调整优先级。

    PRI 和 NICE 相关性: 新PRI = 原PRI + NICE

    当 NICE 为 负 的时候,PRI会优先处理

    注意:

    • nice 值的范围为 :-20 ~ 19
    • root可以随意调整进程的 nice 值。
    • 一般用户可调整的 nice 不能为 负仅能调大不能调小。
  • 赋予一个进程NICE值

    • nice:新执行的命令给予nice值

      指令如下:

      在这里插入图片描述

      首先转换为root用户,参照之前的注意事项进行操作。
      在这里插入图片描述

    • renice:已经存在的进程调整nice值
      -

      在这里插入图片描述
      成功修改。

4、系统资源

好多好多 记不住细节 man 一下看看

  • free:查看内存使用
    在这里插入图片描述

  • uname:查看系统内核
    在这里插入图片描述

  • uptime:查看系统时间和任务负载
    在这里插入图片描述

  • netstat:追踪网络 或 socket 文件
    在这里插入图片描述

  • dmesg:分析内核产生信息
    在这里插入图片描述

  • vmstat:检测系统资源变化

    统计主机CPU状态,每秒一次,共三次:
    在这里插入图片描述
    磁盘读写状态:
    在这里插入图片描述


总结

本章主要介绍了进程和任务管理的相关操作。

其中任务管理的相关操作,如 &、ctrl-z、jobs、fg、bg、kill 等。
还有与进程管理的 ps、top、pstree、kill、killal 等。

但是操作太多,记忆并不是非常深刻,还需熟练。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值