目录

本文导读

查找进程

top 命令

ps 命令

lsof 命令

结束进程

kill 命令

killall 命令


本文导读

  • windows上可以直接在任务管理器中查看和结束进程,Linux上则可以使用如下方式进行

查找进程

  • 杀进程的第一步就是查找进程

 top 命令

  • top 命令 比较综合的动态显示系统进程运行情况。因为是实时显示运行情况,所以可以按"ctrl+c"退出。
  • 如下所示可以看到 Mysql 的 进程PID为 1658
[root@localhost ~]# top
top - 17:08:51 up 2 min,  2 users,  load average: 0.19, 0.15, 0.06
Tasks: 354 total,   2 running, 352 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1001332 total,   297624 free,   492484 used,   211224 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   345408 avail Mem PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                              297 root      20   0       0      0      0 S  0.7  0.0   0:00.98 kworker/0:2                                          1658 mysql     20   0 1362156 373548  13208 S  0.7 37.3   0:02.90 mysqld                                               2708 root      20   0  148396   2312   1460 R  0.7  0.2   0:00.07 top                                                  1 root      20   0   44188   6648   3948 S  0.0  0.7   0:01.72 systemd                                              2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd                                             3 root      20   0       0      0      0 S  0.0  0.0   0:00.03 ksoftirqd/0                                          4 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0                                          5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                         6 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kworker/u256:0                                       7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0  

ps 命令

  • ps 命令是相当强大地进程查看命令,运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等。

  • ps 是显示瞬间进程的状态,并不动态连续,如果想对进程进行实时监控应该用top命令。

  • 该命令语法格式:ps [选项]

参数:-A :所有的进程均显示出来,与 -e 具有同样的效用;-a : 显示现行终端机下的所有进程,包括其他用户的进程;-u :以用户为主的进程状态 ;x :通常与 a 这个参数一起使用,可列出较完整信息。
  • 1、查看当前运行的所有进程:
[root@localhost ~]# ps -APID TTY          TIME CMD1 ?        00:00:01 systemd2 ?        00:00:00 kthreadd3 ?        00:00:00 ksoftirqd/06 ?        00:00:00 kworker/u256:07 ?        00:00:00 migration/0946 ?        00:00:00 NetworkManager1081 ?        00:00:00 wpa_supplicant1082 ?        00:00:00 polkitd1276 ?        00:00:00 dhclient1467 ?        00:00:00 sshd1468 ?        00:00:00 tuned1658 ?        00:00:07 mysqld2619 ?        00:00:00 master2621 ?        00:00:00 pickup
.................
  • 2、查看当前运行的所有进程同时显示详细信息,实际中通常使用 "-aux" 组合:
[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.6  44188  6652 ?        Ss   17:06   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    17:06   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    17:06   0:00 [ksoftirqd/0]
root          6  0.0  0.0      0     0 ?        S    17:06   0:00 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    17:06   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    17:06   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    17:06   0:00 [rcuob/0]
root       1467  0.0  0.3  80916  3636 ?        Ss   17:06   0:00 /usr/sbin/sshd -D
root       1468  0.0  1.8 555712 18444 ?        Ssl  17:06   0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P
mysql      1658  0.7 38.1 1362156 382236 ?      Ssl  17:06   0:08 /usr/sbin/mysqld
root       2619  0.0  0.2  90380  2176 ?        Ss   17:06   0:00 /usr/libexec/postfix/master -w
postfix    2621  0.0  0.4  90484  4128 ?        S    17:06   0:00 pickup -l -t unix -u
postfix    2622  0.0  0.4  90552  4152 ?        S    17:06   0:00 qmgr -l -t unix -u
  • 3、查看指定进程,结合 grep 可以快速查找进程信息:
[root@localhost ~]# ps -aux|grep mysql
mysql      1658  0.6 38.1 1362156 382236 ?      Ssl  17:06   0:09 /usr/sbin/mysqld
root       2743  0.0  0.0 112724   964 pts/0    R+   17:28   0:00 grep --color=auto mysql
[root@localhost ~]# ps -aux|grep redis
root       2745  0.0  0.0 112724   960 pts/0    R+   17:28   0:00 grep --color=auto redis
[root@localhost ~]# ps -aux|grep java
root       2747  0.0  0.0 112724   960 pts/0    R+   17:28   0:00 grep --color=auto java
[root@localhost ~]# ps -A|grep java
[root@localhost ~]#
USER 进程的属主;
PID   进程的ID;
PPID    父进程;
%CPU   进程占用的CPU百分比;
%MEM  占用内存的百分比;
NI      进程的NICE值,数值大,表示较少占用CPU时间;
VSZ     該进程使用的虚拟內存量(KB);
RSS     該進程占用的固定內存量(KB)(驻留中页的数量);
TTY     該進程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若為pts/0等,則表示由網絡連接主機進程
WCHAN  當前進程是否正在進行,若為-表示正在進行;
START   該進程被觸發启动时间;
TIME    該进程實際使用CPU運行的时间;
COMMAND   命令的名称和参数;

lsof 命令

  • 可以用 lsof 命令 查看是哪个进程打开了某个端口。比如Tomcat默认是8080,redis默认是6379、mysql默认是3306、Oracle默认是1521 等。
  • 语法:lsof -i :端口号
  • 当Linux没有安装 lsof 时,可以先用 "yum list lsof"查找能用的安装包,在使用 "yum install xxxx"进行安装
[root@localhost ~]# yum list lsof
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.zju.edu.cn* updates: mirrors.tuna.tsinghua.edu.cn
可安装的软件包
lsof.x86_64                                                                4.87-5.el7
.....
[root@localhost ~]# yum install lsof.x86_64
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
.....
Running transaction正在安装    : lsof-4.87-5.el7.x86_64                                                                                                               1/1 验证中      : lsof-4.87-5.el7.x86_64                                                                                                               1/1 已安装:lsof.x86_64 0:4.87-5.el7                                                                                                                               完毕!
  • 然后使用 “lsof -i :端口号”查看占用端口的进程
[root@localhost ~]# lsof -i :3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1658 mysql   20u  IPv6  20161      0t0  TCP *:mysql (LISTEN)
[root@localhost ~]# lsof -i :6379
[root@localhost ~]# lsof -i :3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1658 mysql   20u  IPv6  20161      0t0  TCP *:mysql (LISTEN)

结束进程

 kill 命令

  • kill 命令经常被使用,它通过发送指定信号给进程或进程组,可以用 kill -l 查看都有哪些信号。
[root@localhost ~]# kill -l1) SIGHUP     2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP6) SIGABRT    7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    
  • 1、根据进程 pid 强制结束进程,使用上面的 -9 即可。先查询进程PID值,然后结束它
[root@localhost ~]# ps -aux|grep redis
root       3021  0.0  0.0 112724   964 pts/0    S+   18:01   0:00 grep --color=auto redis
[root@localhost ~]# kill -9 3021

killall 命令

  • killall 命令根据进程名来结束进程
[root@localhost ~]# killall redis
redis: no process found
[root@localhost ~]# killall mysql
mysql: no process found
[root@localhost ~]# killall mysqld

Linux 查找进程与结束进程相关推荐

  1. Linux命令--根据进程名结束进程

    原文网址:Linux命令--根据进程名结束进程_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Linux根据进程名结束(杀死)进程的命令. 主要有三种方法: ps + grep killall pk ...

  2. 查看进程及结束进程命令

    一.Windows下查看进程及结束进程命令 查看占用8080端口的进程号 netstat -aon | findstr "8080" 结果:TCP 0.0.0.0:8080 0.0 ...

  3. Windows下如何查看被占用进程及结束进程?

    Windows下如何查看被占用进程及结束进程? 查找所有运行的端口命令:netstat -ano 查找被占用端口对应的PID:netstat -aon|findstr "2990" ...

  4. Window平台下通过cmd命令查看端口占用、查看进程、结束进程

    Window平台下通过cmd命令查看端口占用.查看进程.结束进程 一.概述: (更好的阅读体验,请移步我的个人博客)在学习进程间通讯的时候,我们知道有一种通讯方式叫做socket.对于跨主机之间的进程 ...

  5. linux命令行怎么结束进程,linux结束进程命令

    linux下进程的开启与结束都可以通过命令来控制,下面由学习啦小编为大家整理了linux下结束进程命令的相关知识,希望对大家有所帮助. linux结束进程命令1.kill kill [信号代码] 根据 ...

  6. Linux查找并杀死僵尸进程

    1.查看系统是否有僵尸进程 使用Top命令查找,当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程. 2.定位僵尸进程 使用命令ps -A -ostat,ppid,pid,cmd |gre ...

  7. linux查看进程,结束进程命令

    查看进程 ps -ef | grep 程序名 关闭进程 强制关闭进程 Kill -9 进程pid

  8. 结束拒绝访问的进程 cmd下结束进程 强行结束进程

    结束拒绝访问的进程 有些病毒和恶意进程我们在任务管理器里面是不能结束的,这个时候,如果又没有工具,就很麻烦了,今天看网管员世界,提到了一种方法,能够解决: 根本的思想是用system的权限来运行tas ...

  9. 结束拒绝访问的进程 cmd下结束进程 强行结束进程 1

    结束拒绝访问的进程 有些病毒和恶意进程我们在任务管理器里面是不能结束的,这个时候,如果又没有工具,就很麻烦了,今天看网管员世界,提到了一种方法,能够解决: 根本的思想是用system的权限来运行tas ...

  10. linux查找被杀死的进程,linux查找进程和杀死进程

    查看进程:ps -ef | grep 检索内容 杀死进程:kill pid       (进程号) kill -9 pid      强制杀死进程 ps命令将某个进程显示出来 grep命令是查找 中间 ...

最新文章

  1. spring boot 2.0 集成shiro注意事项
  2. 23种设计模式C++源码与UML实现--模板模式
  3. 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
  4. java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?
  5. java wix_使用WIX升级MSI
  6. 值对于 int32 太大或太小。_失效值处理
  7. MySQL5.7.11免安装版的安装和配置:解决MYSQL 服务无法启动问题
  8. 第一章 认识网络爬虫
  9. Web 设计师的 50 个超便利工具[下]
  10. 如何禁止开机时进入安全模式
  11. 同事去了友司,没什么可怕的
  12. 我接触到的几款SQLite管理工具
  13. 三极管的导通条件总结
  14. android悬浮按钮实现方法
  15. 生活随记 - 清明时节特想老爸老妈
  16. HTML5 开发工具推荐
  17. iOS开发之支付宝集成
  18. 安科瑞变电所运维云平台AcrelCloud-1000实时监测
  19. 用SmartDraw绘制需求分析过程中的功能图
  20. OpenCV--030图像积方图算法

热门文章

  1. 排序算法--归并排序
  2. [转载]仿射变换(Affine Transformation)
  3. ef mysql 分页查询语句_MySQL、Oracle和SQL Server的分页查询语句
  4. 拓端tecdat|R语言最大流最小割定理和最短路径算法分析交通网络流量拥堵问题
  5. 随机森林 ---sklearn
  6. 图像处理-图像尺寸变换
  7. 一个基于特征向量的近似网页去重算法
  8. 激活函数、损失函数及其优化方法总结
  9. SyntaxError: Non-ASCII character ‘\xe4‘ in file baseline.py on line 18, but no encoding declared;
  10. qt编写的android菜单,Qt for Android实现与webview的交互