Linux系统中操作进程的指令

取某一个时间点的进程状态ps指令

ps的指令是有很多的,可直接背两个比较不同的选项

  • 一个是只能查阅自己 bash进程的【 ps -l 】
  • 一个则是可以查阅所有系统运作的进程【 ps aux 】注意,你没看错,中间没有那个减号(-)
执行【 ps -l 】命令:

在这里插入图片描述

  • F:代表这个进程旗标(process flags),说明这个进程的总结权限,常见号码有:
  1. 若为4表示此进程的权限为root ;

  2. 若为1则表示此子进程仅进行复制(fork)而没有实际执行(exec)。

  • S:代表这个进程的状态(STAT),主要的状态有:
  1. R (Running):该程序正在运作中;
  2. S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
  3. D:不可被唤醒的睡眠状态,通常这支程序可能在等待IO的情况(ex>打印)
  4. T :停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态;
  5. Z(Zombie):僵尸状态,进程已经终止但却无法被移除至内存外。
  • UID/PID/PPID:代表『此进程被该UID所拥有/进程的PID号码/此进程的父进程PID号码』

  • C:代表CPU 使用率,单位为百分比;

  • PRI/NI: Priority/Nice 的缩写,代表此进程被CPU所执行的优先级,数值越小代表该进程越快被CPU执行。详细的PRI与NI将说明【PRI(new)=PRI(old)+ nice】。

  • ADDR/SZ/WCHAN:都与内存有关,ADDR是 kernel function,指出该进程在内存的哪个部分,如果是个running 的进程,一般就会显示『-」/SZ 代表此进程用掉多少内存/WCHAN表示目前进程是否运作中,同样的,若为–表示正在运作中。

  • TTY:登入者的终端机位置,若为远程登录则使用动态终端接口(pts/n);

  • TIME:使用掉的CPU时间,注意,是此进程实际花费CPU运作的时间,而不是系统时间;

  • CMD:就是 command 的缩写,造成此进程的触发程序之指令为何。

执行【 ps aux】命令:

在这里插入图片描述
对比两个命令发现 ps-l 与ps aux显示的项目名称并不相同在。ps aux显示的项目中,各字段的意义为:

  1. USER:该process 属于那个使用者账号的;
  2. PID :该process的进程标识符。
  3. CPU:该process使用掉的CPU资源百分比;
  4. %MEM:该process所占用的物理内存百分比;
  5. VSZ :该process使用掉的虚拟内存量(Kbytes)
  6. RSS :该process占用的固定的内存量(Kbytes )
  7. TTY:该process是在那个终端机上面运作,若与终端机无关则显示?,另外,t ty1-tty6是本机上面的登入者进程,若为pts/0 等等的,则表示为由网络连接进主机的进程。
  8. STAT:该进程目前的状态,状态显示与 ps -l 的S旗标相同 (R/S/T/Z)
  9. START:该process被触发启动的时间;
  10. TIME :该process实际使用CPU运作的时间。
  11. COMMAND:该进程的实际指令为何?

动态的显示进程状态top指令

top指令描述:
加粗样式
在这里插入图片描述
下面是每6秒钟动态显示进程状态:

在这里插入图片描述
top指令的上部分:

  • 第一行(top…):这一行显示的信息分别为:
  1. 目前的时间,亦即是 10:45:14那个项目;
  2. 开机到目前为止所经过的时间,亦即是up 6:07,那个项目;
  3. 已经登入系统的用户人数,亦即是 1 users,项目;
  4. 系统在 1,5,15分钟的平均工作负载。batch工作方式为负载小于0.8就是这个负载啰!代表的是 1,5,15分钟,系统平均要负责运作几个进程(工作)的意思。越小代表系统越闲置,若高于1得要注意你的系统进程是否太过繁复了!
  • 第二行(Tasks…):显示的是目前进程的总量与个别进程在什么状态(running, sleeping, stopped, zombie)。比较需要注意的是最后的 zombie那个数值,如果不是0,好好看看到底是哪个process变成僵尸了吧?

  • 第三行(%Cpus…):显示的是CPU的整体负载,每个项目可使用?查阅。需要特别注意的是 wa项目,那个项目代表的是 I/O wait,通常你的系统会变慢都是I/O产生的问题比较大!因此这里得要注意这个项目耗用CPU的资源喔!另外,如果是多核心的设备,可以按下数字键『1』来切换成不同CPU的负载率

  • 第四行与第五行:表示目前的物理内存与虚拟内存(Mem/Swap)的使用情况。再次重申,要注意的是swap的使用量要尽量的少!如果 swap被用的很大量,表示系统的物理内存实在不足!

  • 第六行:这个是当在 top程序当中输入指令时,显示状态的地方。

top指令的下部分:
是每个process 使用的资源情况。比较需要注意的是:

  • PID :每个process 的ID
  • USER:该process所属的使用者;
  • PR: Priority 的简写,进程的优先执行顺序,越小越早被执行;
  • NI : Nice 的简写,与 Priority有关,也是越小越早被执行;
  • %CPU:CPU的使用率;
  • %MEM:内存的使用率;
  • TIME+:CPU使用时间的累加;

查找进程的相关性pstree指令

[ tudy ~]# pstree [-AIU][-up]

选项与参数:
-A:各进程树之间的连接以ASCII字符来连接;
-U:各进程树之间的连接以万国码的字符来连接。在某些终端接口下可能会有错误;
-p:并同时列出每个process的 PID;
-u:并同时列出每个process的所属账号名称。

使用线段将相关性进程连接起来:
在这里插入图片描述

  • 在括号()内的即是PID以及该进程的 owner 。一般来说,如果该进程的所有人与父进程同,就不会列出,但是如果与父进程不一样,那就会列出该进程的拥有者!看上面1211就转变成app_admin了

PRI与NI将说明

PRI(new)=PRI(old)+ nice

  • nice值可调整的范围为-20~~19 ;
  • root可随意调整自己或他人进程的Nice值,且范围为-20~19 ;
  • 一般使用者仅可调整自己进程的Nice值,且范围仅为0~19(避免一般用户抢占系统资源);
  • 一般使用者仅可将nice值越调越高,例如本来 nice为5,则未来仅能调整到大于5;

这也就是说,要调整某个进程的优先执行序,就是『调整该进程的nice值』那么如何给予某个进程nice值呢?
调整进程的优先执行序有两种方式,分别是:

  • 一开始执行程序就立即给予一个特定的nice值:用nice指令;
[ root@study ~]# nice [-n数字]command选项与参数:
[ root@study ~]# nice [-n数字]command选项与参数:
-n:后面接一个数值,数值的范围-20 ~19。

范例一:用root 给一个nice值为-5,用于执行vim ,并观察该进程!
[ root@study ~]# nice -n -5 vim &
[1]19865
[ root@study ~]# ps -1
#因此 vim的 PRI降低了,RPI与NI各减5,但不一定每次都是正好相同喔!因为核心会动态调整

  • 调整某个已经存在的PID的nice值:用renice指令。
[ root@study ~]#renice [number] PID
选项与参数:
PID:某个进程的ID啊!

整个nice值是可以在父进程–>子进程之间传递的呢!另外,除了renice 之外,其实那个top同样的也是可以调整nice值的!

kill杀死进程

使用kill -l 命令可以看到命令信号signal值含义
在这里插入图片描述
常用的有三个

  • 1(SIGHUP):启动被终止的进程,可让该PID重新读取自己的配置文件,类似重新启动。
  • 9(SIGKILL):强制杀死该进程,与15相比这个信号不能被捕获或忽略,如果进程执行到一半,尚未完成的部分可能会产生半成品。
  • 15(SIGTERM):正常停止一个进程,以正常的结束进程来终止该进程。由于是正常的终止,所以后续的动作会将他完成。不过,如果该进程已经发生问题,就是无法使用正常的方法终止时,输入这个signal也是没有用的。。
[ root@study ~]# kill  -9  PID
选项与参数:
PID:某个进程的ID
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值