zoukankan      html  css  js  c++  java
  • 笔记常用Linux命令(二) 进程和端口

    查看系统进程

    • ps:用于报告当前系统的进程状态
      • a:显示所有终端机下执行的程序
    ps -ef/ps aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。
    如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis (查看包括redis字符串的进程)
    
    [root@VM_0_4_centos ~]# ps -ef | grep nginx
    root      1892     1  0 15:19 ?        00:00:00 nginx: master process nginx
    nginx     1893  1892  0 15:19 ?        00:00:00 nginx: worker process
    root      1908  1248  0 15:19 pts/0    00:00:00 grep --color=auto nginx
    
    
    
    root@iZuf6c0rnhno78oq2pxylnZ:~# ps -aux 
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    
    USER 进程的属主;
    PID 进程的ID;
    PPID 父进程;
    %CPU 进程占用的CPU百分比;
    %MEM 占用内存的百分比;
    NI 进程的NICE值,数值大,表示较少占用CPU时间;
    VSZ 进程虚拟大小;
    RSS 驻留中页的数量;
    TTY 终端ID
    STAT 进程状态(有以下几种)
    D 无法中断的休眠状态(通常 IO 的进程);
    R 正在运行可中在队列中可过行的;
    S 处于休眠状态;
    T 停止或被追踪;
    W 进入内存交换(从内核2.6开始无效);
    X 死掉的进程(从来没见过);
    Z 僵尸进程;
    

    杀死进程

    • kill : 用来删除执行中的程序或工作

      • 语法: kill(选项)(参数)

      • 选项:

        • a:当处理当前进程时,不限制命令名和进程号的对应关系;
        • l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
        • p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
        • s <信息名称或编号>:指定要送出的信息;
        • u:指定用户
      • 参数:进程或作业识别号:指定要删除的进程或作业。常用PID

    • 列出所有信号名称

      • kill -l
    root@iZuf6c0rnhno78oq2pxylnZ:~# kill -l
     1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
     6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
    ·
    ·
    ·
    
    • 得到指定信号的数值
      • kill -l KILL
    root@iZuf6c0rnhno78oq2pxylnZ:~# kill -l KILL
    9
    
    • 杀死进程
    1. 查看nginx进程:ps -aux | grep nginx
    root@iZuf6c0rnhno78oq2pxylnZ:~# ps -aux | grep nginx
    root       323  0.0  0.2 117656  4924 ?        Ss    2019   0:00 nginx: master process nginx
    root      3412  0.0  0.0  14224   968 pts/0    S+   16:32   0:00 grep --color=auto nginx
    www-data 30902  0.0  0.2 118032  4992 ?        S    Jan04   0:00 nginx: worker process
    

    2、杀死nginx进程:kill -9 323 30902

    root@iZuf6c0rnhno78oq2pxylnZ:~# kill -9 323 30902
    

    查看程序占用的端口号

    ps:lsof -i 需要 root 用户的权限来执行

    • lsof: 是一个列出当前系统打开文件的工具

      • 语法:lsof(选项)
      • 选项
        • a:列出打开文件存在的进程;
        • c<进程名>:列出指定进程所打开的文件;
        • g:列出GID号进程详情;
        • d<文件号>:列出占用该文件号的进程;
        • d< 目录>:列出目录下被打开的文件;
        • D<目录>:递归列出目录下被打开的文件;
        • n<目录>:列出使用NFS的文件;
        • i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
        • p<进程号>:列出指定进程号所打开的文件;
        • u:列出UID号进程详情;
        • h:显示帮助信息;
        • v:显示版本信息。
    • 查看占用80端口的程序

    • lsof -i : 端口号

    root@iZuf6c0rnhno78oq2pxylnZ:~# lsof -i:80
    COMMAND     PID     USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    AliYunDun   822     root   21u  IPv4 46829108      0t0  TCP 172.17.1.142:37126->100.100.30.25:http (ESTABLISHED)
    nginx     19170     root    6u  IPv4 69865848      0t0  TCP 172.17.1.142:http (LISTEN)
    nginx     19173 www-data    6u  IPv4 69865848      0t0  TCP 172.17.1.142:http (LISTEN)
    
    • 根据进程PID查看占用的端口号
    • lsof -i | grep pid
    root@iZuf6c0rnhno78oq2pxylnZ:~# lsof -i | grep 19170
    nginx     19170            root    6u  IPv4 69865848      0t0  TCP 172.17.1.142:http (LISTEN)
    nginx     19170            root    7u  IPv4 69865849      0t0  TCP 172.17.1.142:81 (LISTEN)
    nginx     19170            root    8u  IPv4 69865850      0t0  TCP 172.17.1.142:8000 (LISTEN)
    nginx     19170            root    9u  IPv4 69865851      0t0  TCP 172.17.1.142:8001 (LISTEN)
    nginx     19170            root   10u  IPv4 69865852      0t0  TCP 172.17.1.142:8002 (LISTEN)
    
    • 根据进程名查看占用的端口号
    root@iZuf6c0rnhno78oq2pxylnZ:~# lsof -i | grep nginx
    nginx     19170            root    6u  IPv4 69865848      0t0  TCP 172.17.1.142:http (LISTEN)
    nginx     19170            root    7u  IPv4 69865849      0t0  TCP 172.17.1.142:81 (LISTEN)
    nginx     19170            root    8u  IPv4 69865850      0t0  TCP 172.17.1.142:8000 (LISTEN)
    nginx     19170            root    9u  IPv4 69865851      0t0  TCP 172.17.1.142:8001 (LISTEN)
    nginx     19170            root   10u  IPv4 69865852      0t0  TCP 172.17.1.142:8002 (LISTEN)
    nginx     19173        www-data    6u  IPv4 69865848      0t0  TCP 172.17.1.142:http (LISTEN)
    nginx     19173        www-data    7u  IPv4 69865849      0t0  TCP 172.17.1.142:81 (LISTEN)
    nginx     19173        www-data    8u  IPv4 69865850      0t0  TCP 172.17.1.142:8000 (LISTEN)
    nginx     19173        www-data    9u  IPv4 69865851      0t0  TCP 172.17.1.142:8001 (LISTEN)
    nginx     19173        www-data   10u  IPv4 69865852      0t0  TCP 172.17.1.142:8002 (LISTEN)
    

    查看Linux中网络系统的状态信息

    • netstat

      • 语法:netstat(选项)
      • 选项:
        • a或--all:显示所有连线中的Socket;
        • n或--numeric:直接使用ip地址,而不通过域名服务器;
        • p或--programs:显示正在使用Socket的程序识别码和程序名称;
    • 根据进程名查看占用的端口号

    root@iZuf6c0rnhno78oq2pxylnZ:~# netstat -anp | grep nginx
    tcp        0      0 172.17.1.142:8000       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:8001       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:8002       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:80         0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:81         0.0.0.0:*               LISTEN      19170/nginx: master
    unix  3      [ ]         STREAM     CONNECTED     69865863 19170/nginx: master 
    unix  3      [ ]         STREAM     CONNECTED     69865862 19170/nginx: master 
    
    
    • 根据进程PID查看占用的端口号
    root@iZuf6c0rnhno78oq2pxylnZ:~# netstat -anp | grep 80
    tcp        0      0 172.17.1.142:8000       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:8001       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:8002       0.0.0.0:*               LISTEN      19170/nginx: master
    tcp        0      0 172.17.1.142:80         0.0.0.0:*               LISTEN      19170/nginx: master
    

    参考文章

    每天一个linux命令(42):kill命
    Linux 查看端口占用情况
    Linux命令大全
    如何在 Linux 中查看进程占用的端口号

  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/snailrunning/p/12180657.html
Copyright © 2011-2022 走看看