Linux常用命令(十)查看和控制进程

一、查看进程

1、ps命令——查看静态的进程统计信息(Processes  Statistic)

ps命令时Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以有选择性地查看进程信息。

■a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的           进程信息。

■u:使用以用户为主的格式输出进程信息。

■x:显示当前用户在所有终端下的进程信息。

■–e:显示系统内的所有进程信息。

■–l:使用长格式显示进程信息。

■–f:使用完整的格式显示进程信息。

以上是ps命令中几个常用的选项,需要注意的是,有一部分选项时不带“-”前缀的。习惯上将上述选项组合在一起使用,如执行“ps aux”或“ps -elf”。

执行“ps aux”命令后,将以简单列表的形式显示出进程信息。[root@houliangjin6 ~]# ps aux

上述输出信息中,第一行为列表标题,其各字段的含义描述如下。

■USER:启动该进程的户账号的名称。

■PID:该进程在系统中的数字ID号,在当前系统中是唯一的。

■TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。

■STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、

■START:启动该进程的时间。

■TIME:该进程占用的CPU时间。

■COMMAND:启动该进程的命令的名称。

■%CPU:CPU占用的百分比。

■%MEM:内存占用的百分比。

■VSZ:占用虚拟内存(swap空间)的大小。

■RSS:占用常驻内存(物理内存)的大小。

若执行“ps -elf”命令,则将以长格式显示系统中的进程信息。例如,输出的信息中还包括PPID列(表示对应进程的父进程的PID号)。[root@houliangjin6 ~]# ps -elf

直接执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程。

2、top命令——查看进程动态信息

top命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次。作用类似Windows系统中的“任务管理器”。[root@houliangjin6 ~]# top

上述输出信息中,开头的部分显示了系统任务(Tasks)、CPU占用、内存占用(Mem)、交换空间(Swap)等汇总信息;汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下。

■系统任务(Tasks)信息:total,总进程数;

running,正在运行的进程数;

sleeping,休眠的进程数;

stopped,终止的进程数;

zombie,僵死无响应的进程数。

■CPU占用信息:us,用户占用;

sy,内核占用;

ni,优先级调度占用;

id,空闲CPU;

wa,1/0等占用;

hi,硬件中断占用,si,软件中断占用;

st,虚拟化占用。

■内存占用(Mem)信息:total,总内存空间;

used,已用内存;

free,空闲内存;

buffers,缓冲区域。

交换空间(Swap)占用:total,总内存空间;

used,已用内存;

free,空闲内存;

buffers,缓冲区域。

在top命令的全屏操作界面中:可以按P键根据CPU占用情况对进程列表进行排序。

按M键根据内存占用情况进行排序。

按N键根据启动时间进行排序。

按h键可以获得top程序的在线帮助。

按q键可以正常的退出top程序。

按k键在列表上方会出现“PID to kill:”的提示信息,根据提示输入指定进程的PID并按Enter键确认即可终止对应的进程。

3、pgrep命令——查询进程信息

使用pgrep命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID号。

通过pgrep命令,可以只指定进程的一部分名称进行查询,结合“-l”选项可同时输出对应的进程名(否则只输PID号,不便于理解)。例如,查询进程中包含“log”的进程及其PID号,可以执行以下操作。[root@houliangjin6 ~]# pgrep -l “log”

2538  rsyslog

2113  mcelog

还可以结合“-U”选项查询特定用户的进程、“-t”选项查询在特定终端运行的进程。例如,若要查询用户zhangsan在tty3终端上运行的进程及PID号,可以执行以下操作。[root@houliangjin6 ~]# pgrep -l -U zhangsan-t tty3

2105 bash

2122 vim

4、pstree命令——查看进程树

pstree命令可以输出Linux系统中各进程的树形结构,以更加直观地判断出各进程之间的相互关系(父、子进程)。

pstree命令默认情况下只显示个进程的名称,结合“-p”选项使用时可以同时列出对应的PID号,结合“-u”选项可以列出对应的用户名,结合“-a”选项可以列出完整的命令信息。

例如,执行“pstree  -aup”命令可以查看当前系统的进程树,包括个进程对应的PID号、用户名、完整命令等信息。从出输出结果中可以看出,init进程确实是Linux系统中所有进程的“始祖”

二、控制进程

1、启动进程

1)、手动启动进程

用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动。

进程在前台运行时(如执行“ls -l”命令),用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数的命令操作都是在前台运行。进程在后台运行时,用户可以继续在当前终端继续输入其他命令,而无需等待该进程结束,适用于运行耗时较长的操作。

启动后台运行进程需要使用“&”操作符,将“&”操作符放在要执行命令的最后面,进程启动后悔直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。

例如,当使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&”符号将复制操作放到后台运行。[root@houliangjin6 ~]# cp /dev/cdrom/root/Redhat6.0.iso &

[1] 2172

2)、调度启动进程

在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就要用户事先进行调度安排,指定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划任务进程均在后台运行,不会占用用户的命令终端。

进程的调度启动可以通过at、crontab命令进行设置,其中at命令用于设置一次性计划任务,crontab用于设置周期性运行的计划任务。关于at和crontab的配置将在下一篇博客里边讲解。

2、改变进程的运行方式

1)、挂起当前的进程

当Linux系统中的命令正在前台执行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。

[root@houliangjin6 ~]# cp /dev/cdrom/mnt/Redhat6.0.iso

[1]+ Stopped                 cp -i/dev/cdrom /mnt/Redhat6.0.iso

2)、查看后台的进程

查看当前终端中在后台运行的进程任务时,可以使用jobs命令,结合“-l”选项可以同时显示出该进程对应的PID号。

[root@houliangjin6 ~]# jobs -l

[1]+  2193停止cp -i /dev/cdrom /mnt/Redhat6.0.iso

3)、将后台的进程恢复运行

■使用bg(BackGround,后台)命令,可以将后台中暂定执行(如按Ctrl+Z组合键挂起)的任务恢复运行,继续在后台执行操作、

■使用fg命令(ForeGround,前台)命令,可以将后台任务重新恢复到前台运行。

除非后台中的任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数。

例如,执行“fg 1”命令可以将之前挂起至后台的cp进程重新调入前台执行。[root@houliangjin6 /]# jobs

[1]+ Stopped                 cp -i/dev/cdrom /mnt/Redhat6.0.iso

[root@houliangjin6 /]# fg 1

cp -i /dev/cdrom /mnt/Redhat6.0.iso

3、终止进程执行

当用户在前台执行某个进程时,可以按Ctrl+C组合键强制进行中断(如命令长时间没有响应的情况下)。

1)、使用kill命令终止进程

通过kill命令终止进程时,需要使用进程的PID号作为参数。无特定选项时,kill命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9”选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已不要轻易使用“-9”

选项。

■(查询目标进程的PID号)[root@houliangjin6 /]# pgrep -l "sshd"

1583 sshd

1907 sshd

■(终止指定PID的进程)

[root@houliangjin6/]# kill 1583

■(确认进程已终止)[root@houliangjin6 /]# pgrep -l "sshd"

1907 sshd

[root@houliangjin6 /]#

对于无法正常终止的系统进程,在必要时可以结合“-9”选项强制终止。

2)、使用killall命令终止进程

使用killall命令可以通过进程名来终止进程,当需要结束系统中多个相同名称的进程时,使用killall命令将更加方便,效率更高。killall命令同样也有“-9”选项。

例如,挂起两个vim测试进程,通过killall命令终止多个进程。[root@houliangjin6 /]# vim 1

[1]+ Stopped                 vim 1

[root@houliangjin6 /]# vim 2

[2]+ Stopped                 vim 2

[root@houliangjin6 /]# jobs -l

[1]- 25330 停止                  vim 1

[2]+ 25332 停止                  vim 2

[root@houliangjin6 /]# killall -9 vim

[1]-  已杀死              vim 1

[2]+  已杀死              vim 2

3)、是用pkill命令终止进程

使用pkill命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,大部分选项与pgrep命令基本类似,如“-U”(指定用户)、“-t”(指定终端)等选项。

例如,若要终止由用户zhangsan启动的进程(包括登陆Shell),可以执行以下操作。[root@houliangjin6 /]# pgrep -l -U"zhangsan"

2105 bash

[root@houliangjin6 /]# pkill -9 -U"zhangsan"

[root@houliangjin6 /]# pgrep -l -U"zhangsan"

linux命令查进程,Linux常用命令(十)查看和控制进程相关推荐

  1. 【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ

    实现自己既定的目标,必须能耐得住寂寞单干 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.y ...

  2. Linux(Ubuntu) 使用指南和常用命令

    L i n u x ( U b u n t u ) Linux(Ubuntu) Linux(Ubuntu) 使用指南与常用命令 Copyright: Jingmin Wei, Pattern Reco ...

  3. linux命令grep和find怎么用,Linux下find和grep常用命令及区别介绍

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的. 区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空 ...

  4. Linux K8S(Kubernetes)常用命令

    Linux K8S(Kubernetes)常用命令集 一.K8S简介 二.常用命令 2.1 想查看kubectl命令的方法 2.2 常用的命令类 2.3 K8S常用命令 一.K8S简介 Kuberne ...

  5. 查看Linux当前操作系统版本信息常用命令

    查看Linux当前操作系统版本信息常用命令 Linux查看当前操作系统版本信息 Linux查看版本当前操作系统内核信息 linux查看版本当前操作系统发行信息 Linux查看cpu相关信息,包括型号. ...

  6. NO9 Linux快捷键整理及最常用命令

    Linux快捷键整理及最常用命令 常用快捷键: Ctrl + u            删除光标之前到行首的字符 Ctrl + k            删除光标之前到行尾的字符 Ctrl + c   ...

  7. Linux查看和控制进程

    转自:https://baijiahao.baidu.com/s?id=1617448120776344096&wfr=spider&for=pc Linux如何查看和控制进程 前言: ...

  8. 中兴zxr10路由器重启命令_中兴交换机常用命令

    中兴交换机配置命令 ZTE交换机配置常用命令汇总 命令的使用要注意各种用户模式. 配成普通交换机:把2-24端口归到VLAN1下,2-24端口如果互相隔离,可以用PVLAN删除隔离端口即可. 2852 ...

  9. linux .lz进程,LLinux常用命令(二)

    Linux常用命令(二) 16 磁盘空间 df -h . fdisk -l 显示已经挂载的分区列表 17 用户和群组 groupadd group_name 创建一个新用户组 groupdel gro ...

最新文章

  1. Xtrabackup备份到远程服务器
  2. 类型转换与采样 || SMOTE算法
  3. mac pdf去水印_今天才知道,Word、PDF文档去水印这么简单!一键水印说拜拜
  4. Java 图形用户界面(GUI)java.awt包概述
  5. delete表1条件是另一个表中的数据,多表连接删除
  6. java登录界面命令_Java命令行界面(第30部分):观察
  7. Java线程Fork/Join思想及实现
  8. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
  9. html背景设置为彩色,CSS3 彩色网格背景
  10. 对象functionJavaScript: The Definitive Guide 权威指南,读书笔记(一)
  11. 概率论总结(《概率论与数理统计》第四版 浙江大学)
  12. 数据库索引原理及优化
  13. 如何重置IE浏览器?重置IE浏览器的方法
  14. c++ 调用meshlab程序慢_从Meshlab学架构
  15. wp8 android,WP8桌面主题|WP8桌面v1.5.2 for Android版 - 玩客网
  16. 图像分割之分水岭分割算法
  17. 服务端判断客户端是移动端浏览器还是PC端浏览器
  18. 计算机专业进国企有什么难度,大学毕业后才发现,国企与私企的差距不是一星半点,希望你没选错...
  19. 运行Django项目报错解决,OSError: [WinError 123] 文件名、目录名或卷标语法不正确。
  20. 右键菜单,下拉选项的截屏

热门文章

  1. linux系统安装oracle 报错INS-30131 无法访问临时位置 version of exectask could not be retrieved from node
  2. KeyValuePair和Dictionary详解:
  3. 2020第六届美亚杯中国电子数据取证大赛个人资格赛
  4. java ntohl_socket中的ntohl() 和ntohs() ,以及htonl()和htons()
  5. 【pwnable.kr】Toddler‘s Bottle-[random]
  6. ubuntu安装python库_Python安装:如何在ubuntu下安装python库
  7. 房地产行业是如何使用彩信广告进行宣传的?
  8. 【聆听】汪国真诗集(一)
  9. Python爬取CAP之家的APP推广信息数据
  10. Rides5.0.4版本单机版设置