项目中用到的Linux命令
Posted developing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目中用到的Linux命令相关的知识,希望对你有一定的参考价值。
利用 lsof -p +进程 id 查看该进程打开的文件描述符
利用lsof -i : +端口号 查看进程的信息
有些时候需要确定进程内部当前运行了多少线程,查询方法如下:
1)通过pstree命令(根据pid)进行查询:
[[email protected]_web2 ~]
# ps -ef|grep java //查找进程pid(比如这里查找java(tomcat)进程的pid)
[[email protected]_web2 ~]
# pstree -p 19135
java(19135)─┬─{java}(19136)
├─{java}(19137)
.......
└─{java}(13578)
[[email protected]_web2 ~]
# pstree -p 19135|wc -l
46
//
由于第一行包括了2个线程,所以该进程下一共有47个线程!
或者使用
top
命令查看(可以查看到线程情况)
[[email protected]_web2 ~]
# top -Hp 19135 //下面结果中的Tasks 对应的47即是线程的个数
top
- 14:05:55 up 391 days, 20:59, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 47 total, 0 running, 47 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.7%
id
, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8058056k total, 7718656k used, 339400k
free
, 354216k buffers
Swap: 0k total, 0k used, 0k
free
, 4678160k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19135 root 20 0 5339m 632m 5476 S 0.0 8.0 0:00.00 java
19136 root 20 0 5339m 632m 5476 S 0.0 8.0 0:00.84 java
......
2)根据
ps
命令直接查询:
[[email protected]_web2 ~]
# ps hH p 19135| wc -l
47
3)通过查看
/proc/pid/status
proc伪文件系统,它驻留在
/proc
目录,这是最简单的方法来查看任何活动进程的线程数。
/proc
目录以可读文本文件形式输出,提供现有进程和系统硬件
相关的信息如CPU、中断、内存、磁盘等等。
[[email protected]_web2 ~]
# cat /proc/19135/status
Name: java
State: S (sleeping)
Tgid: 19135
Pid: 19135
PPid: 1
TracerPid: 0
........
Threads: 47
//
这里显示的是进程创建的总线程数。输出表明该进程有47个线程。
SigQ: 1
/62793
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
.......
voluntary_ctxt_switches: 1
nonvoluntary_ctxt_switches: 1
或者,也可以在
/proc//task
中简单的统计子目录的数量,如下所示:
[[email protected]_web2 ~]
# ll /proc/19135/task
总用量 0
dr-xr-xr-x 6 root root 0 6月 14 17:57 11553
......
[[email protected]_web2 ~]
# ll /proc/19135/task|wc -l
48
这是因为,对于一个进程中创建的每个线程,在
/proc/
<pid>
/task
中会创建一个相应的目录,命名为其线程ID。由此在
/proc/
<pid>
/task
中目录的总数表示在进程中线程的数目。
netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段
-a :all,表示列出所有的连接,服务监听,Socket资料
-t :tcp,列出tcp协议的服务
-u :udp,列出udp协议的服务
-n :port number, 用端口号来显示
-l :listening,列出当前监听服务
-p :program,列出服务程序的PID
以上是关于项目中用到的Linux命令的主要内容,如果未能解决你的问题,请参考以下文章