linux-进程pskill
Posted 可乐卷儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-进程pskill相关的知识,希望对你有一定的参考价值。
文章目录
一、程序的概念
1、与程序的区别
- 程序:静态;安装在硬盘或光盘存储介质中,静态保存的代码,占用硬盘空间
- 进程:程序运行指挥产生进程,是动态的;不占用硬盘空间,占得内存cpu空间
一个程序产生一个进程或多个进程
2、生命周期
- 每个进程有个父进程(fork),产生子进程;不同在于每个进程启动服务产生子进程PID,父进程PPID;子进程独立完成工作之后,给父进程发送信号告知其子进程工作结束并要求父进程接受,然后子进程消失,父进程回收系统分配的资源
- 僵尸进程:子进程完成工作之后,父进程无法接收子进程的信息;对系统是有害的,一直占用资源;解决办法:找到父进程,结束父进程,就变成孤儿进程;
- 孤儿进程:子进程完成工作之后,找不到父进程接收子进程的信息,系统会让进程号PID=1,即systemd接收信息
二、进程五大状态
- 运行状态/正在运行状态
- 可中断睡眠状态:暂时无工作状态,等到被唤醒
- 不可中断睡眠状态:工作状态时,不可被打扰的状态
- 僵尸进程:将死状态,进程存在又无法结束;这时需要找问题源头
- 停止状态/暂停状态:
- 已死/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实例
- 查看vim的PID
ps aux | grep vim:查询出来的还包含root
ps aux | grep vim | grep -v grep:查看vim的PID,不包含root
- ps -ef | head:查看所有进程前十个
- 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:返回图形界面(打开新的图形界面)
前台进程:中止后台仍在运行
后台进程:中止即停止进程
- 命令模式:ctrl+z:调到后台
比如vim tom:编辑内容到一半需要做别的事情,就可以把编辑一半的资料放在后台
- 命令写到一半想要存放后台 直接在命令后面加上“&”
- jobs:查看后台进程
- fg 后台进程号:调出到前台
- 若命令后面不加&,中间摁键:ctrl+z:暂停放在后台;
- bg 数字:取消暂停后台继续运行
- 直接中断进程:ctrl+c
- kill -9 %1:杀死后台进程号1
以上是关于linux-进程pskill的主要内容,如果未能解决你的问题,请参考以下文章