• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux查看进程的所有信息的方法示例

    服务器上有一个任务进程,当我们使用ps -ef | grep task查看时,只能得到一些最基本的信息,假如我们需要知道对应的文件路径、启动命令的完整路径,就无从下手了。

    今天教大家一个方法来查看进程的所有信息,包括启动命令的完整路径、对应的文件完整路径等等信息:ls -l /proc/PID

    例如使用ps -ef | grep webhook查看进程时,只能得到如下信息

    > ps -ef | grep webhook
    root   15902   1 0 Aug15 ?    00:00:00 python -u src/webhook.py
    root   30639 30612 0 22:50 pts/0  00:00:00 grep --color=auto webhook

    然后执行 ls -l /proc/15902

    > ll /proc/15902
    dr-xr-xr-x 2 root root 0 Sep 18 22:52 attr
    -rw-r--r-- 1 root root 0 Sep 18 22:52 autogroup
    -r-------- 1 root root 0 Sep 18 22:52 auxv
    -r--r--r-- 1 root root 0 Sep 18 22:52 cgroup
    --w------- 1 root root 0 Sep 18 22:52 clear_refs
    -r--r--r-- 1 root root 0 Aug 15 16:48 cmdline
    -rw-r--r-- 1 root root 0 Sep 18 22:52 comm
    -rw-r--r-- 1 root root 0 Sep 18 22:52 coredump_filter
    -r--r--r-- 1 root root 0 Sep 18 22:52 cpuset
    lrwxrwxrwx 1 root root 0 Aug 15 16:48 cwd -> /services/apps/webhook
    -r-------- 1 root root 0 Sep 18 22:52 environ
    lrwxrwxrwx 1 root root 0 Aug 15 16:48 exe -> /usr/bin/python2.7
    dr-x------ 2 root root 0 Aug 15 16:48 fd
    dr-x------ 2 root root 0 Sep 18 22:52 fdinfo
    -rw-r--r-- 1 root root 0 Sep 18 22:52 gid_map
    -r-------- 1 root root 0 Sep 18 22:52 io
    -r--r--r-- 1 root root 0 Sep 18 22:52 limits
    ...
    

    有几个主要的文件我们可以关注下:

    补充:

    #lsof 列出当前系统打开文件,常与-i选项使用,用于查看某个端口被哪个程序占用
    [root@bogon ~]# lsof -i:80
    COMMAND PID  USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
    httpd  6701  root  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    httpd  6702 apache  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    httpd  6703 apache  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    httpd  6704 apache  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    httpd  6705 apache  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    httpd  6706 apache  4u IPv6 64259   0t0 TCP *:http (LISTEN)
    [root@bogon ~]# lsof -i:22
    COMMAND PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
    sshd   931 root  3u IPv4 20955   0t0 TCP *:ssh (LISTEN)
    sshd   931 root  4u IPv6 20965   0t0 TCP *:ssh (LISTEN)
    sshd  3926 root  3u IPv4 36374   0t0 TCP bogon:ssh->bogon:53436 (ESTABLISHED)
    [root@bogon ~]# 
    
    
    #获取终端上所有用户的有关进程的所有信息
    [root@bogon ~]# ps -aux
    USER    PID %CPU %MEM  VSZ  RSS TTY   STAT START  TIME COMMAND
    root     1 0.0 0.4 128092 4724 ?    Ss  Jun25  0:03 /usr/lib/systemd/syste
    root     2 0.0 0.0   0   0 ?    S  Jun25  0:00 [kthreadd]
    root     3 0.0 0.0   0   0 ?    S  Jun25  0:00 [ksoftirqd/0]
    root     6 0.0 0.0   0   0 ?    S  Jun25  0:00 [kworker/u256:0]
    root     7 0.0 0.0   0   0 ?    S  Jun25  0:00 [migration/0]
    root     8 0.0 0.0   0   0 ?    S  Jun25  0:00 [rcu_bh]
    root     9 0.0 0.0   0   0 ?    R  Jun25  0:01 [rcu_sched]
    root     10 0.0 0.0   0   0 ?    S  Jun25  0:00 [watchdog/0]
    root     12 0.0 0.0   0   0 ?    S<  Jun25  0:00 [khelper]
    root     13 0.0 0.0   0   0 ?    S  Jun25  0:00 [kdevtmpfs]
    root     14 0.0 0.0   0   0 ?    S<  Jun25  0:00 [netns]
    root     15 0.0 0.0   0   0 ?    S  Jun25  0:00 [khungtaskd]
    root     16 0.0 0.0   0   0 ?    S<  Jun25  0:00 [writeback]
    root     17 0.0 0.0   0   0 ?    S<  Jun25  0:00 [kintegrityd]
    root     18 0.0 0.0   0   0 ?    S<  Jun25  0:00 [bioset]
    root     19 0.0 0.0   0   0 ?    S<  Jun25  0:00 [kblockd]
    root     20 0.0 0.0   0   0 ?    S<  Jun25  0:00 [md]
    root     26 0.0 0.0   0   0 ?    S  Jun25  0:00 [kswapd0]
    root     27 0.0 0.0   0   0 ?    SN  Jun25  0:00 [ksmd]
    root     28 0.0 0.0   0   0 ?    SN  Jun25  0:00 [khugepaged]
    root     29 0.0 0.0   0   0 ?    S  Jun25  0:00 [fsnotify_mark]
    root     30 0.0 0.0   0   0 ?    S<  Jun25  0:00 [crypto]
    root     38 0.0 0.0   0   0 ?    S<  Jun25  0:00 [kthrotld]
    root     40 0.0 0.0   0   0 ?    S<  Jun25  0:00 [kmpath_rdacd]
    root     41 0.0 0.0   0   0 ?    S<  Jun25  0:00 [kpsmoused]
    root     43 0.0 0.0   0   0 ?    S<  Jun25  0:00 [ipv6_addrconf]
    root     62 0.0 0.0   0   0 ?    S<  Jun25  0:00 [deferwq]
    root     94 0.0 0.0   0   0 ?    S  Jun25  0:00 [kauditd]
    root    233 0.0 0.0   0   0 ?    S<  Jun25  0:00 [mpt_poll_0]
    root    234 0.0 0.0   0   0 ?    S<  Jun25  0:00 [ata_sff]
    root    235 0.0 0.0   0   0 ?    S<  Jun25  0:00 [mpt/0]
    root    241 0.0 0.0   0   0 ?    S  Jun25  0:00 [scsi_eh_0]
    root    243 0.0 0.0   0   0 ?    S<  Jun25  0:00 [scsi_tmf_0]
    root    245 0.0 0.0   0   0 ?    S  Jun25  0:00 [scsi_eh_1]
    root    246 0.0 0.0   0   0 ?    S  Jun25  0:00 [kworker/u256:2]
    。。。。。。
    
    
    #获取某服务程序的所有进程号
    [root@bogon ~]# pgrep httpd
    6701
    6702
    6703
    6704
    6705
    6706
    #杀死进程,killall通过程序名字杀死所有进程
    [root@bogon ~]# killall httpd
    [root@bogon ~]# pgrep httpd
    [root@bogon ~]# 
    #kill杀死程序
    [root@bogon ~]# cat a.sh  #死循环
    #!/bin/bash
    while true
    do
      echo "linux">/dev/null
    done
    [root@bogon ~]# ./a.sh
    ^Z
    [1]+ Stopped         ./a.sh
    [root@bogon ~]# ps
      PID TTY     TIME CMD
     3930 pts/1  00:00:00 bash
     11719 pts/1  00:00:01 a.sh
     11729 pts/1  00:00:00 ps
    [root@bogon ~]# kill 11719   #偶然间发现这个问题,原因暂时不明
    [root@bogon ~]# ps
      PID TTY     TIME CMD
     3930 pts/1  00:00:00 bash
     11719 pts/1  00:00:01 a.sh
     11733 pts/1  00:00:00 ps
    [root@bogon ~]# kill -9 11719 #既然普通kill无法杀死,那么就发送-9信号直接强制杀死,问题解决
    [root@bogon ~]# ps
      PID TTY     TIME CMD
     3930 pts/1  00:00:00 bash
     11734 pts/1  00:00:00 ps
    [1]+ Killed         ./a.sh
    [root@bogon ~]# ./a.sh &
    [1] 11735
    [root@bogon ~]# ps
      PID TTY     TIME CMD
     3930 pts/1  00:00:00 bash
     11735 pts/1  00:00:01 a.sh
     11736 pts/1  00:00:00 ps
    [root@bogon ~]# kill 11735  #普通后台运行程序可以直接kill
    [root@bogon ~]# ps
      PID TTY     TIME CMD
     3930 pts/1  00:00:00 bash
     11737 pts/1  00:00:00 ps
    [1]+ Terminated       ./a.sh
    [root@bogon ~]# 

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:Nginx反代Mogilefs分布式储存示例详解
    下一篇:详解kvm部署三个虚拟机实现 WordPress 实验
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux查看进程的所有信息的方法示例 Linux,查看,进程,的,所有,