linux-进程pskill

Posted 可乐卷儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-进程pskill相关的知识,希望对你有一定的参考价值。


一、程序的概念

1、与程序的区别

  • 程序:静态;安装在硬盘或光盘存储介质中,静态保存的代码,占用硬盘空间
  • 进程:程序运行指挥产生进程,是动态的;不占用硬盘空间,占得内存cpu空间
    一个程序产生一个进程或多个进程

2、生命周期

  • 每个进程有个父进程(fork),产生子进程;不同在于每个进程启动服务产生子进程PID,父进程PPID;子进程独立完成工作之后,给父进程发送信号告知其子进程工作结束并要求父进程接受,然后子进程消失,父进程回收系统分配的资源
  • 僵尸进程:子进程完成工作之后,父进程无法接收子进程的信息;对系统是有害的,一直占用资源;解决办法:找到父进程,结束父进程,就变成孤儿进程;
  • 孤儿进程:子进程完成工作之后,找不到父进程接收子进程的信息,系统会让进程号PID=1,即systemd接收信息

二、进程五大状态

  1. 运行状态/正在运行状态
  2. 可中断睡眠状态:暂时无工作状态,等到被唤醒
  3. 不可中断睡眠状态:工作状态时,不可被打扰的状态
  4. 僵尸进程:将死状态,进程存在又无法结束;这时需要找问题源头
  5. 停止状态/暂停状态:
  6. 已死/dead状态(此状态仅做了解)

CPU:同一时刻只能运行一个进程,存在cpu时间片:给一个进程分配一个时间,实际这个时间非常短;

时间片举例:同时打开多个进程qq/微信/网易云,那么第一秒的时候运行qq,第二秒时间运行微信,第三秒运行网易云,等等

三、查看进程信息

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的;但是ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令

1、ps命令

1.1、命令选项

ps是显示瞬间当时进程的状态,并不动态连续;默认以PID进程号列出信息

  • ps:当前终端下运行的程序
选项含义
a显示终端上的所有进程,包括其他用户的进程
u以用户为主的进程状态
x显示没有控制终端的进程;通常与 a 这个参数一起使用,可列出较完整信息
aux以用户的形式展示所有进程信息,包括终端进程
-e显示所有进程
-f全格式
-ef查看所有进程,包含父进程
-elf更详细查看所有进程,包含父进程
r只显示正在运行的进程
-o指定输出字段
x显示没有控制终端的进程

在这里插入图片描述在这里插入图片描述
参数含义如下:

  • USER:用户
  • PID :进程ID号。
  • %CPU:占用的 CPU 资源百分比;
  • %MEM:占用的内存百分比;
  • VSZ :分配总的虚拟内存(kb)
  • RSS :实际占用的物理内存 (Kbytes)
  • TTY :进程允许终端;“?”表示没有终端,即不依赖于终端; tty1-tty6 是本机上面的登入者程序,tty1是本地登录;若为 pts/0 等等的,则表示为通过远程连接的终端。
    • STAT:程序的状态,主要的状态有:
    • R :正常状态
    • S :可中断睡眠
    • D:不可终端状态
    • Z :将死状态
    • T :停止状态
    • N:具有低优先级
    • <:具有高优先级(可获得cpu的分片更长)
    • s:控制性能进程
    • l:是多线程的
    • +:当前进程运行在前台
  • START:该进程被触发启动的时间
  • TIME :该进程占用CPU 运作的时间,即分片。
    COMMAND:执行指令;[]:内核态,内核产生的;不带[]:用户态,用户产生的进程
    在这里插入图片描述
    参数含义如下:
    F:代表这个程序的旗标 (flag), 4 代表使用者为 superuser;
    S:代表这个程序的状态 (STAT)
    UID:代表执行者身份
    PID:进程的ID号
    PPID:父进程的ID;
    C:CPU 使用的资源百分比
    PRI:指进程的执行优先权(Priority的简写),其值越小越早被执行;
    NI :进程的nice值,可以调整影响优先级PRI的大小;只能root可以修改值;(若PID=80,NI=0,想要更改优先级,就把NI=-20,PRI就变成60)
    ADDR :这个是内核函数,指出该程序在内存的那个部分。如果是个执行
    的程序,一般就是『 - 』
    SZ: 使用掉的内存大小;
    WCHAN:目前这个程序是否正在运作当中,若为 - 表示正在运作;
    TTY:登入者的终端机位置
    TIME:使用掉的 CPU 时间。
    CMD:执行命令

1.2实例

  1. 查看vim的PID
    ps aux | grep vim:查询出来的还包含root
    ps aux | grep vim | grep -v grep:查看vim的PID,不包含root
    在这里插入图片描述
  2. ps -ef | head:查看所有进程前十个
    在这里插入图片描述
  3. ps -o user,pid:输出用户的pid
    在这里插入图片描述

2、top命令

top:时时的看进程信息;相较ps可以查看平均负载、占用cup百分比、内存、交换分区等信息
在这里插入图片描述

快捷键含义
P默认排序安装cpu占用的百分比降序排列
M以内存MEM降序排列
N按照PID号降序
z变色
1显示所有cpu
h帮助信息
s更改排序秒数
q退出进程
选项含义
-d 时间设置刷新时间
-p pid号查看指定PID时时进程信息

cpu对应的字段含义:看下图
在这里插入图片描述
cpu排序默认3s更新一次,“s”键更改排序秒数,会出现 change delay from 3.0 to
在这里插入图片描述
查看系统平均负载:等待cpu排队的时间,系统计算出一个平均值,一般在1以下
top | head -1
uptime
cat /proc/loadavg

3、pstree命令

pstree:查看进程
在这里插入图片描述

选项含义
-u查看进程由谁产生
-p显示进程的pid

4、pgrep命令

通过pgrep来获得正在被调度的进程的相关信息;相当于ps aux | grep的缩写

选项含义
-l 进程名查看进程和进程号
-u 用户名查看用户的进程和进程
-l -o 进程名当匹配多个进程时,显示进程号最小的那个
-l -n 进程名当匹配多个进程时,显示进程号最大的那个

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

四、杀死进程-kill

1、kill命令

kill 进程号:指终止程序友好的杀死进程,;进程工作做完之后终止;需要先查询进程号,指定杀死一个进程
在这里插入图片描述
在这里插入图片描述

选项含义
-l查看可用选项
-1重启
-9强制杀死
-15系统默认,友好的杀死

在这里插入图片描述

2、killall命令

命令用于终止某个指定名称的服务所对应的全部进程
killall 进程:批量结束服务程序带有的全部进程
在这里插入图片描述

3、pkill命令

是ps命令和kill命令的结合,按照进程名来杀死指定进程;
pkill和killall应用方法差不多,也是直接杀死运行中的程序,但用法灵活;如果您想杀掉单个进程,请用kill来杀掉

选项含义
-u 进程杀死指定用户的所有进程
-u 进程 进程可以杀死多个指定用户的所有进程
-9强制杀死进程
-f “ping 8.8.8.8”终止程序

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

五、进程相关配置操作

进程后面+d,表示是daemon守护进程
图形化界面:
ctrl+alt+f1键:图形界面
ctrl+alt+f2-6键:字符界面
starts:返回图形界面(打开新的图形界面)
前台进程:中止后台仍在运行
后台进程:中止即停止进程

  1. 命令模式:ctrl+z:调到后台
    比如vim tom:编辑内容到一半需要做别的事情,就可以把编辑一半的资料放在后台
    在这里插入图片描述
  2. 命令写到一半想要存放后台 直接在命令后面加上“&”
    在这里插入图片描述
  3. jobs:查看后台进程
    在这里插入图片描述
  4. fg 后台进程号:调出到前台
    在这里插入图片描述
  5. 若命令后面不加&,中间摁键:ctrl+z:暂停放在后台;
  6. bg 数字:取消暂停后台继续运行
    在这里插入图片描述
  7. 直接中断进程:ctrl+c
  8. kill -9 %1:杀死后台进程号1

以上是关于linux-进程pskill的主要内容,如果未能解决你的问题,请参考以下文章

Linux 查看进程和删除进程

linux查看进程id命令(linux查看进程id)

Linux进程的调度

linux下 用啥命令查看进程?如何杀死进程?

linux查看进程挂掉怎么处理

Linux进程详解