快捷搜索:

您的位置:澳门新葡4473网站 > 热门贴子 > fuser 和 lsof

fuser 和 lsof

发布时间:2019-11-03 03:28编辑:热门贴子浏览(108)

    pidof

        大家驾驭各类女孩儿风度翩翩出生就能四个全国唯风流倜傥的号码来对其进展标志,用于未来上学,办社会养老保险等,便是大家的身份ID号。那么在Linux系统中,用来管理运作程序的标志叫做PID,正是名门熟知的长河ID。那么如何来找到程序的PID了,那么就供给用到命令pidof,其功效主要用来查看运营程序的PID。

    FUSER

    fuser功能
    fuser 能够展示出脚下哪些程序在使用磁盘上的某些文件、挂载点、以致互连网端口,并交付程序进度的详尽新闻.

    fuser展现选用钦定文件或许文件系统的经过ID.暗许景况下种种文件名背后跟叁个假名代表访谈类型。

    访谈类型如下:
    c 代表当前目录
    e 将此文件作为程序的可进行对象使用

    f 展开的文书。暗中认可不出示。
    F 张开的文件,用于写操作。私下认可不展现。

    r 根目录。
    m 映射文件大概分享库。

    s 将此文件作为分享库(或任何可装载对象卡塔 尔(英语:State of Qatar)使用
    当钦赐的文书并未有被访谈,大概现身错误的时候,fuser会重回非零。
    为了查看使用tcp和udp套接字的经过,须要-n选项并点名名称空间。暗中同意IpV4和IpV6都会显得。套接字能够是地面包车型地铁要么是长间距的端口,和长间隔之处。全部的域是可选的,可是其前边的','必得存在。如下:
    [lcl_port][,[rmt_host][,[rmt_port]]]
    对此ip地址和port,名称和数字代表都足以运用。
    fuser只把PID输出到专门的学问输出,别的的都输出到正规错误输出。
    常用选项
    -a 展现全体命令行中内定的文书,暗许情形下被访问的文本才会被出示。
    -c 和-m一样,用于POSIX兼容。
    -k 杀掉访问文件的长河。若无一点名-signal就能发送SIGKILL时限信号。
    -i 杀掉进度在此以前询问顾客,若无-k那几个选项会被忽视。
    -l 列出富有已知的实信号名称。
    -m name 内定叁个挂载文件系统上的公文也许被挂载的块设备(名称name卡塔 尔(阿拉伯语:قطر‎。那样全部访问那几个文件大概文件系统的长河都会被列出来。假使钦命的是一个目录会自动转变来"name/",并利用具备挂载在老大目录上面包车型大巴文件系统。
    -n space 钦赐二个莫衷一是的命名空间(space).这里扶植不一致的半空汉语件(文件名,此处暗中认可)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 能够钦点端口号可能名称,要是不会挑起歧义那么能够动用简便表示的款式,例如:name/space (即形如:80/tcp之类的意味)。
    -s 静默方式,此时-u,-v会被忽视。-a不可能和-s一齐使用。
    -signal 使用钦点的时域信号,并不是用SIGKILL来杀掉进程。能够透过名称恐怕号码来代表功率信号(比如-HUP,-1),那么些选项要和-k一同利用,不然会被忽视。
    新葡亰平台娱乐,-u 在各样PID前面添加进度具备者的客户名称。
    -v 详细格局。输出似ps命令的出口,包涵PID,USE哈弗,COMMAND等众多域,如若是基本访谈的那么PID为kernel. -V 输出版本号。
    -4 使用IPV4套接字,不能够和-6合作利用,只在-n的tcp和udp的命名存在时不被忽略。
    -6 使用IPV6套接字,不能和-4联合使用,只在-n的tcp和udp的命名存在时不被忽略。

    • 重新复苏设置全部的选项,把实信号设置为SIGKILL. 

    选用示例

    呈现接收有个别文件的进程消息
    $ fuser -um /dev/sda2
    /dev/sda2: 6378c(quietheart) 6534c(quietheart) 6628(quietheart)
    6653c(quietheart) 7429c(quietheart) 7549c(quietheart) 7608c(quietheart)
    那几个命令在umount的时候很有用,能够找到还好似何用到这一个设备了。

    干掉张开readme文件的前后相继

    $fuser -m -k -i readme
    这里,会在kill在此以前询问是或不是鲜明。最棒拉长-v以便理解就要杀那么些进度。

    翻看那个程序行使tcp的80端口
    $fuser -v -n tcp 80

    $fuser -v 80/tcp
    fuser区别功率信号的利用
    用 -l参数能够列出fuser所知的时域信号
    # fuser -l
    HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
    STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
    UNUSED
    fuser能够发送它已知的时域信号给访谈的内定文件进度而代替-k参数暗中同意发送的SIGKILL,比方:只是挂起进度,那么发送HUP非确定性信号就足以了
    # fuser -v /root/install.log
    用户 进程号 权限 命令
    /root/install.log: root 3347 f.... tail
    # fuser -k -SIGHUP /root/install.log
    /root/install.log: 3347
    # fuser -v /root/install.log

    生机勃勃,为啥要利用fuser?
       先说 fuser的作用,
       fuser能识别出正在对有个别文件或端口访谈的经过
       大家想转手,还应该有哪位命令具有这些效果?
       没错,是lsof,
       我们前边讲过, lsof可以寻找正在对点名文件访问的进度,
       那么它们两个之间有啥分裂?
       fuser有一个特意的用法在于它能够一回杀死那一个正在访谈钦赐文件的经过    

    二,怎么着使用fuser?
     
       1,如何用fuser获得正在采取钦点文件的长河?
         用法: fuser 文件
         表明:它会把正在使用当前文件的历程id列出

         [root@localhost lhd]# umount /
         umount: /: device is busy.
               (In some cases useful info about processes that use
                the device is found by lsof(8) or fuser(1))
         [root@localhost lhd]# fuser /
          /:                       1rc     2rc     3rc     4rc     5rc     6rc     7rc    80rc    82rc    84rc    85rc   153rc   157rc   158rc

                                   160rc   165rc   168rc  203rc   204rc   205rc   253rc   441rc   444rc   516rc   521rc   524rc   582rc   583rc

                                   584rc   633rc  1052rc  1392rc  1394rc  1417rc  1597rc  1609rc  1617rc  1620rc  1683rc  1744rc  1783r  1785rc

                                   1788rc  1806r  1808r  1810rc  1811rc  1812rc  1813rc  1814rc  1815rc  1848rc  1886rc  1899rc  1900rc  2001rc

                                   ......太多不意气风发一列出

          说明:
          那几个经过号前边的rc是什么意思?
         
          c 将此文件作为当前目录使用。
          e 将此文件作为程序的可举行对象使用。
          r 将此文件作为根目录使用。
          s 将此文件作为分享库(或其余可装载对象卡塔 尔(英语:State of Qatar)使用

       2,如何列出进程的详细音信,而不仅是经过id?
         用 -v参数即可
         表达: -v:  含义是:verbose output,详细的出口音讯
         例子:

         [root@dev ~]# fuser /var/log
         /var/log:             4196c
         [root@dev ~]# fuser -v /var/log      

                              USER        PID ACCESS COMMAND
         /var/log:            root       4196 ..c.. bash

        3,怎样列出进度所属的顾客?
         用 -u参数就可以
         表达: -u: 含义:display user IDs,展现顾客id
        
         例子:
         [root@dev ~]# fuser -u /var/log
         /var/log:             4196c(root)
         表明: -n: 含义:获得正在访谈某意气风发端口的进度号,然后能够用kill命令杀死。

         [root@dev ~]# fuser -un tcp 25
          25/tcp:             4196(root)
         4,如何杀死全部正在访问钦命文件的进程?
         用 -k参数就可以
         说明: -k:含义: kill processes accessing the named file

         例子:

         [root@localhost lhd]# fuser -v /root/install.log

                              用户     进程号 权限   命令
         /root/install.log:   root       3185 f.... tail
         [root@localhost lhd]# fuser -k /root/install.log
         /root/install.log:    3185
         [root@localhost lhd]# fuser -v /root/install.log

         表达: -k参数能够杀死全体的正在访谈钦点文件的经过,所以用来杀进度时十三分平价
         表达之二: fuser怎么着杀死的进度?
                 它发送的是以此信号:SIGKILL

    三,多学一些文化

        1,fuser能够列出它所知的时限信号:
         用 -l参数就可以
        
         例子:
         [root@dev ~]# fuser -l
         HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
         STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
         UNUSED

        2,fuser能够发送它已知的功率信号给访问的钦点文件进度而顶替-k参数暗中同意发送的SIGKILL
          例如:只是挂起进度,那么发送HUP功率信号就足以了
        
          例子:
          [root@localhost lhd]# fuser -v /root/install.log

                               用户     进程号 权限   命令
          /root/install.log:   root       3347 f.... tail
          [root@localhost lhd]# fuser -k -SIGHUP /root/install.log
          /root/install.log:    3347
          [root@localhost lhd]# fuser -v /root/install.log

    中央用法

    pidof [选项] [程序名]
    

    其常用选项参数如下所示:

    选项 说明
    -s 仅返回一个PID
    -c 仅返回具有相同root目录的PID
    -x 显示由脚本开启的进程
    -o omitpid 忽略指定的PID
    pidof命令的返回值通常只有两个:
    - 0:pidof命令至少找到一个对应的PID
    - 1:pidof没有找到任何匹配的PID
    

    LSOF

    lsof 具有越多的机能
    # lsof -i 看系统中有如何开放的端口,哪些进程、顾客在选择它们,比 netstat -lptu 的输出详细。

    # lsof -i 4  查看IPv4类型的进程
    COMMAND    PID        USER   FD   TYPE DEVICE SIZE NODE NAME
    exim4     2213 Debian-exim    4u  IPv4   4844       TCP *:smtp (LISTEN)
    dhclient3 2306        root    4u  IPv4   4555       UDP *:bootpc

    # lsof -i 6  查看IPv6类型的经过
    COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME
    exim4   2213 Debian-exim    3u  IPv6   4820       TCP *:smtp (LISTEN)

    # lsof -i @192.168.1.2  查看与某些具体的IP相关联的进程
    COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
    amule   3620 root   16u  IPv4  11925       TCP 192.168.1.2:42556->77.247.178.244:4242 (ESTABLISHED)
    amule   3620 root   28u  IPv4  11952       TCP 192.168.1.2:49915->118-166-47-24.dynamic.hinet.net:5140 (ESTABLISHED)

    # lsof -p 5670 查看PID为5670的历程展开的公文。

    用法示例

    1、显示运路程序的PID

    [root@localhost ~]# pidof sshd
    34128 34059 28835 28820 24697 24627 23228 23215 1995
    

    在显示的结果能够见到共有9个PID,则声明服务器上9个进程均是由sshd运转的。

    2、显示Shell的进程

    [root@localhost ~]# cat test.sh
    #!/bin/bash
    i=1;
    while [ $i -le 10000 ]
    do
     echo $i
     i=$((i+1))
     sleep 120s
    done
    [root@localhost ~]# ./test.sh &
    [root@localhost ~]# pidof -x test.sh
    36554
    

    3、显示钦命程序的PID

    [root@localhost ~]# pidof -s sshd
    7524
    

    4、忽视钦定的PID

    [root@localhost ~]# pidof sshd
    9104 9103 7524 7434 4474 4462 1995
    [root@localhost ~]# pidof sshd -o 1995
    11979 11978 7524 7434 4474 4462
    

    lsof

        在Windows中删除文件时,会产出被侵占而近来不可能删除的景色,这些我们会大器晚成款非常好用的软件Unlocker,那么在Linux中临近的情事如哪处理了?明天咱们来学习lsof命令。
        lsof全称list open files。用于查看进程张开的公文、目录和套接字等新闻。

    宗旨用法

    pidof [选项] [文件名]
    

    其常用选项参数如下所示:

    选项 说明
    -?或-h 显示帮助信息
    -a 显示打开文件存在的进程
    -c 进程名 显示指定进程所打开的文件
    -d FD 显示文件描述符(FD)占用的进程
    +d 目录名 显示当前目录下被打开的文件
    +D 目录名 递归显示当前目录下被打开的文件
    -i 条件 显示符合条件的进程
    -p pid 显示指定PID打开的文件
    -u uid 显示指定UID打开的文件
    -g 显示所属组标识符PGID
    R 显示父进程PPID

    此中筛选 -i 帮忙的规范化如下所示:

    条件 说明 示例
    4/6 IPv4/ IPv6 lsof -i
    protocol UDP/TCP lsof -i TCP
    hostname 网络主机名 lsof -i@localhost
    hostaddr 网络地址 lsof -i@192.168.8.8
    service 服务名称,可查看/etc/services lsof -i:ssh
    port 端口 lsof -i:22

    lsof输出的详细音信解释如下:

    • COMMAND:进度名称,假如名称较长,则暗许只显示前9个字符
    • PID:进度标记符,尽管加上-PAJERO参数,则体现父进程PPID
    • USE奥迪Q5:进程全部者,借使加上-g参数,则展现组标记符PGID
    • FD:文件陈说符
    • TYPE:文件类型,见惯不惊类型如下所示:
      DI奥迪Q5:表示目录
      REG:表示平时文书
      CHSportage:表示字符类型
      BLK:表示块设备等级次序
      UNIX:表示UNIX套接字
      FIFO:表示先进先出队列
      IPv4:表示IPv4套接字
      IPv6:表示IPv6套接字

    文本陈述符FD,但却能够表示两类内容:

    • 首先类是文本陈述符
      0:规范输入
      1:标准输出
      2:标准错误输出
      n:别的文件呈报符的数值

    新葡亰平台娱乐 1

    • 其次类描述文件特征的标志
      CWD:表示应用程序的当前专业目录,即程序运维的目录
      txt:表示文件类型为程序代码或数额
      mem:内部存款和储蓄器映射文件
      pd:父目录
      rtd:根目录
      DEL:表示文件已经删除但还存在于内部存款和储蓄器中

    用法示例

    1、通过文件定位占用的长河

    [root@localhost ~]# top -d 2 > top.txt
    [root@localhost ~]# lsof top.txt
    lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
    top     8900 root    1w   REG    8,2    69035 469790741 top.txt
    

    2、通过文件叙述符定位进度

    [root@localhost ~]# lsof -d 5 | head -3
    lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
       Output information may be incomplete.
    COMMAND  PID  USER   FD   TYPE      DEVICE SIZE/OFF NODE       NAME
    systemd  1    root   5u   a_inode   0,10     0     7450       [signalfd]
    Xvnc     2678 root   5u   IPv6      41776    0t0   TCP *:6003 (LISTEN)
    

    3、通过进程定位文件

    [root@localhost ~]# ps -ef |grep -i  mysql | grep -v grep
    mysql 2680  1  2 7月19 ?  11:44:50 /usr/libexec/mysqld --basedir=/usr
    [root@localhost ~]# lsof -p 2680 | head -3
    lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
         Output information may be incomplete.
    COMMAND  PID  USER   FD    TYPE  DEVICE SIZE/OFF  NODE   NAME
    mysqld  2680  mysql  cwd   DIR   8,2    4096      319571 /var/lib/mysql
    mysqld  2680  mysql  rtd   DIR   8,2    254       512    /
    

    4、查看客户展开的文本

    [root@localhost ~]# lsof -u root | tail -3
    lsof:WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
       Output information may be incomplete.
    COMMAND   PID   USER  FD     TYPE DEVICE  SIZE/OFF NODE NAME
    kworker/3 39337 root  cwd    DIR  8,2     254      512  /
    kworker/3 39337 root  rtd    DIR  8,2     254      512  /
    kworker/3 39337 root  txt   unknown                     /proc/39337/exe
    

    5、查看程序所占用的端口

    [root@localhost ~]# lsof -i:22
    COMMAND PID    USER   FD  TYPE  DEVICE      SIZE/OFF NODE NAME
    sshd    27597  root   3u  IPv4 1460505039   0t0      TCP *:ssh (LISTEN)
    sshd    27597  root   4u  IPv6 1460505041   0t0      TCP *:ssh (LISTEN)
    

    fuser

        fuser重要用以浮现进度正在选拔的文件、套接字、挂载点等。

    着力用法

    fuser [选项] [文件名]
    

    其常用选项如下所示:

    选项 说明
    -a ,--all 显示命令行中指定的所有文件
    -c 同-m选项,用于兼容POSIX
    -k, --kill 杀掉使用文件的进程
    -i, --interactive 杀掉进程前需要用户确认,如果无-k参数则默认忽略该参数
    -l, --list-signals 显示所有已知的 signal名称
    -m NAME, --mount NAME 指定一个挂载的文件系统或被挂载的设备
    -n SPACE 指定一个不同的命名空间,支持不同的命名空间文件(默认为文件名)、UDP(本地UDP端口)、TCP(本地TCP端口),为避免歧义,可以使用name/space形式,如80/tcp
    -w 仅杀掉拥有写入权限的进程,如果无-k参数则默认忽略该参数
    -s, --silent 静默模式,-u和-v忽略该参数
    -u, --user 在PID后显示所属的用户名
    -v, --verbose 显示详细信息
    -4, --ipv4 仅搜索IPv4的套接字
    -6, --ipv6 仅搜索IPv6的套接字

    fuser展现内定文件或文件系统的进程PID,在暗中同意形式中,每一个文件名背后会用一个假名代表访谈类型,如下所示:

    • c:表示当前目录
    • e:表示该文件为可实践文件
    • f:表示被张开的文书,暗中同意形式中f不出示
    • F:表示被打开的文书,用于写入操作,默许方式中F不显得
    • r:根目录
    • m:映射文件或分享lib
    -f 和 -F 只有与选项 -v 一起使用的时候才会显示,其他情况则默认不显示
    

    用法示例

    1、杀掉全体占用/home的进度

    [root@localhost ~]# fuser -km /home
    

    2、展现本地全部mysql上端口过程

    [root@localhost ~]# fuser mysql/tcp
    mysql/tcp:            2680
    

    3、展现详细的音讯

    [root@localhost ~]# fuser -v top.txt
                         用户     进程号  权限   命令
    /root/top.txt:       root     15847 F....  top
    

    4、查看有多少个进程正在使用有些目录下文件系统,包蕴子目录

    [root@localhost ~]# fuser -v -m /home/data
                         用户     进程号 权限   命令
    /home/data:          root     kernel mount /home/data
    

    5、通过端口定位进度

    [root@localhost ~]# fuser -v -n tcp 22
                         用户     进程号 权限   命令
    22/tcp:              root      27597 F.... sshd
                         root      31119 F.... sshd
    或
    [root@localhost ~]# fuser -v 22/tcp
                         用户     进程号 权限   命令
    22/tcp:              root      27597 F.... sshd
                         root      31119 F.... sshd
    

    fuser与lsof对比

    对比项 fuser lsof
    定位方式 通过文件查找进程 通过进程查找文件
    所属标准 POSIX -
    参数类型 文件/网络端口 文件/PID/网络端口
    进程输出 PID PID详细信息
    是否可发送信息 可以,使用-k 不可以

    ps

        在Windows系统中用来查看进程日常是因此职责微型机。而在Linux中,大家用ps(Process Status)命令来查看进程。

    主干用法

    ps [选项]
    

    其常用选项如下所示:

    选项 说明
    -A 显示所有进程,同选项-e
    -a 显示所有进程,但排除新会话的首进程和无控制终端的进程
    -d 显示所有进程,但排除新会话的首进程
    -e 显示所有进程,同选项-A
    r 仅显示正在运行的进程
    -C cmdlist 显示指定命令的进程信息
    -p pidlist 显示指定PID的进程
    -t ttylist 显示指定tty的进程
    -u userlist 显示指定有效用户ID或名字的进程
    -c 显示CLS和PRI列
    -f 添加详细列信息,通常与其他选项联合使用
    -x 没有关联到终端上的进程也进行显示
    -o 仅显示自定义的列
    -l 仅显示属于当前登录用户的PID与相关信息列表
    --sort spec 对输出信息进行排序 + 升序排序 - 降序排序

    用法示例

    1、不带参数的亲自去做

    [root@localhost ~]# ps
      PID TTY          TIME CMD
    11047 pts/0    00:00:00 ps
    24892 pts/0    00:00:00 su
    25142 pts/0    00:00:00 bash
    

    2、仅彰显与最近顾客相关的历程和相关音讯

    [root@localhost ~]# ps -l
    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    0 R     0 22720 25142  0  80   0 - 38292 -      pts/0    00:00:00 ps
    4 S     0 24892 22641  0  80   0 - 58599 do_wai pts/0    00:00:00 su
    4 S     0 25142 24892  0  80   0 - 29305 do_wai pts/0    00:00:00 bash
    
    • F:表示经过阐明,表明当前路程的权柄,若为4代表经过权限为root,若为1意味着些子进度仅可开展复制(fork卡塔尔而不可能实际运作
    • S:表示经过情形,重要意况有:
        LAND:进度正在运营
        S:进程处于睡眠情形,但能够被提醒
        D:进度处于不可被晋升的睡觉情状,平日该进度恐怕在等待I/O
        T:甘休状态,也许是在办事调控或除错状态
        Z:尸鬼状态,进行已经告风流罗曼蒂克段落但却无法自由内部存款和储蓄器等
    • UID/PID/PPID:举行的所属UID/PID/PPID
    • C:CPU使用率,单位为%
    • PTiggoI/NI:Priority/Nice缩写,表示经过被CPU试行的优先级,数值越小越快被CPU推行
    • ADD福特Explorer:与内部存储器相关,ADD福特Explorer表示该过程在内部存储器的哪些部分,假若是Running进度,会展现 -
    • SZ:与内部存款和储蓄器相关,表示该进度使用了某个内部存款和储蓄器;
    • WCHAN:与内存相关,表示该进程近些日子是还是不是正在运转,-表示正在运营中
    • TTY:运维进度的尖峰名称
    • TIME:进度的实在CPU占用时间之和,单位为秒
    • CMD:进度命令

    3、查看系统具有进度

    [root@localhost ~]# ps aux
    USER PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root   2  0.0  0.0      0     0 ?        S    8月08   0:00 [kthreadd]
    root   3  0.0  0.0      0     0 ?        S    8月08   0:03 [ksoftirqd/0]
    root   5  0.0  0.0      0     0 ?        S<   8月08   0:00 [kworker/0:0H]
    root   8  0.0  0.0      0     0 ?        S    8月08   0:00 [migration/0]
    
    • USE瑞鹰:进程所属顾客
    • PID:进度标识符
    • %CPU:进程的CPU占比
    • %MEM:进度物理内部存款和储蓄器占比
    • VSZ:进度设想内存(KB卡塔尔国使用量
    • LacrosseSS:进程占用的定点内部存款和储蓄器量(KB卡塔 尔(阿拉伯语:قطر‎
    • TTY:运行进度的终极名称
    • STAT:进度情状
    • START:进度运转时间
    • TIME:进度的实际CPU占用时间之和
    • COMMAND:进度命令

    在Linux中ps平日有三种分裂的书写格式

    • BSD格式:选项前不加短横线 - ,八个选项能够结合使用如ps aux
    • UNIX格式:选项前加短横线 -,多少个选项能够整合使用如ps -aux
    • GNU长格式:选项前加双短横线 --,如 ps --context

    之所以ps aux 和ps -aux 在体现的出口音信是千篇风华正茂律的。

    4、呈现自定义列

    [root@localhost ~]# ps -eo pid,user,cmd
    PID USER     CMD
      2 root     [kthreadd]
      3 root     [ksoftirqd/0]
      5 root     [kworker/0:0H]
      8 root     [migration/0]
    

    5、对输出结果实行排序

    [root@localhost ~]# ps -ef --sort=uid,-ppid,+pid
    UID  PID    PPID  C STIME TTY        TIME CMD
    root 31637 31624  0 17:42 pts/1  00:00:00 less -s
    root 40772 25142  0 17:44 pts/0  00:00:00 ps -ef --sort=uid,-ppid,+pid
    root 40773 25142  0 17:44 pts/0  00:00:00 more
    root 25142 24892  0 15:32 pts/0  00:00:00 bash
    root 31624 24164  0 17:42 pts/1  00:00:00 man ps
    root 24164 23955  0 15:32 pts/1  00:00:00 bash
    root 23955 23586  0 15:32 pts/1  00:00:00 su root
    root 24892 22641  0 15:32 pts/0  00:00:00 su root
    

    pstree

        在行使ps查看进程特别常有助于,但若想查看详细经过和子进度时,则须要利用pstree全命令。由于pstree不是系统自带,须求活动设置

    yum -y install pstree
    

    宗旨语法

    pstree [选项]
    

    常用选项如下所示:

    选项 说明
    -a 显示每个进程的完整指令,包括路径、参数等
    -h 高亮显示当前进程及父进程
    -g 显示PGID
    -n 相同父进程下,按各自的PID进行排序
    -p 显示PID
    -s 显示父进程
    -u username 显示UID信息

    kill

        在Windows系统中,当有个别多个前后相继现身假死或无影响时,大家日常张开职分微处理器,找到呼应的历程,然后杀掉该进程。在命令行盛行的Linux中,大家该采用哪个命令?常用于杀掉进度的命令非kill莫属了。

    宗旨用法

    kill [选项] [PID]
    

    其常用选项如下所示:

    选项 说明
    -s signal 向目标进程发送指定的信号类型,信号可以为名称或数字
    -l 显示信号名称列表,如果在-l加编号则查看信号名称,反之亦然
    -a 处理当前进程时,不限制命令和PID的对应关系
    -p 指定kill命令仅显示相关进程的进程号,而不发送任何信号
    • 无选项:表示向目的经过发送暗中认可的告大器晚成段落时域信号,即SIGTERM
    • PID>0:表示向目的经过发送确定性信号,此处的PID可以是多少个PID,用空格进行分隔
    • PID=0:表示向当前历程组的具备进程发送数字信号
    • PID=-1:表示向除当前 kill 进度和 init 进度之外的持有进程发送实信号
    • PID<-1:表示向经过组PGID的兼具进度发送连续信号,如-123,则向进度组PGID为123的具有进度发送复信号

    用法示例

    1、呈现实信号列表
    新葡亰平台娱乐 2

    除上述呈现实信号,还恐怕有一个万分的编号0为测量试验时域信号,其效能如下:

    • 用以测量检验目的经过是不是留存
    [root@localhost ~]# kill -l 0
    T
    [root@localhost ~]# kill -0 99999
    bash: kill: (99999) - 没有那个进程
    
    • 用以测验当前客户是或不是持有向该进度发送信号的权位
    [admin@localhost ~]# kill -0 2325
    bash: kill: (2325) - 操作不被允许
    

    2、查看实信号对应的数码或名称

    [root@localhost ~]# kill -l SIGHUP
    1
    [root@localhost ~]# kill -l KILL
    9
    [root@localhost ~]# kill -l 9
    KILL
    

    在Linux中常用实信号如下所示:

    信号名称 编号 解释
    HUP 1 终端断线
    INT 2 中断(同Ctrl+C)
    QUIT 3 退出(同Ctrl+)
    KILL 9 强制终止
    TEEM 15 终止
    CONT 18 继续(与STOP相反)
    STOP 19 暂停(同Ctrl+Z)

    3、强制截止进度

    [root@localhost ~]# kill -9 26744
    [root@localhost ~]# kill -kill 30470
    

    在应用kill -9要求在意的事项如下所示:

    • kill无法杀死进度为1的init过程
    • 在使用kill -9时是强行终止进程且从未打招呼目的经过展开本身清理,而是蓦然被搁浅,能够招致财富无法符合规律释放,数据不能够合营到磁盘等,在运用前供给三思

    正文同步在Wechat订阅号上公布,如各位小同伙们喜欢本身的随笔,也得以关切作者的Wechat订阅号:woaitest,或扫描上边的二维码加多关心:
    新葡亰平台娱乐 3

    本文由澳门新葡4473网站发布于热门贴子,转载请注明出处:fuser 和 lsof

    关键词:

上一篇:关于 AVI 的一些代码

下一篇:__dbg.h