Linux查看进程的所有信息的方法示例
吾爱主题
阅读:133
2024-04-05 13:55:48
评论:0
服务器上有一个任务进程,当我们使用ps -ef | grep task查看时,只能得到一些最基本的信息,假如我们需要知道对应的文件路径、启动命令的完整路径,就无从下手了。
今天教大家一个方法来查看进程的所有信息,包括启动命令的完整路径、对应的文件完整路径等等信息:ls -l /proc/PID
例如使用ps -ef | grep webhook查看进程时,只能得到如下信息
?1 2 3 | > 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
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | > 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 ... |
有几个主要的文件我们可以关注下:
- cwd:文件所在目录
- exe:执行命令的完整路径
- environ:执行命令时的环境变量
补充:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | #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 ~] # |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000016915180
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。