原创

linux进程操作命令

查询进程信息

# ps -ef|grep java
root     10549     1  0 6月14 ?       02:23:48 java -Xms128m -Xmx256m -jar demo-0.0.1.jar

查询进程运行时间

# ps -eo pid,lstart,etime | grep 10549
10549 Fri Jun 14 09:34:41 2024 45-04:26:31

查询所有进程信息

#进程信息

top

#按内存排序
shift+m

#按CPU排序
shift+p

#查看所有线程
top -H -p 30009

#线程ID转16进制
printf '%x\n' 78015

#查看线程在干啥


jstack 78013 |grep  '130bf'jstack 78013 |grep  $(printf '%x\n' 78015)

查看进程打开的文件

lsof -p 78015
COMMAND   PID        USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAMEjava    14302 invoiceTool  cwd       DIR              253,2      4096    786738 /home/demo/demo

#安装
yum -y install lsof

进程所有内存块

pmap -x 2553000007ffed2bd7000
8       8       0 r-x--   [ anon ]ffffffffff600000       4       0       0 r-x--   [ anon ]---------------- ------- ------- ------- total kB         12491788 7671872 7649484

调试进程

gdb -p 3154
#如果未安装 需要安装
yum -y install gdb
#导出内存dump memory /home/invoiceTool/aaa.dump 0x80000000 0x100880000dump memory /home/demo/444.dump 0x7fbfa0000000 0x7fbfa319e000
#查看导出字符串
strings -n 10 aaa.dump
#问题 内存太大 会报错 可以减小大小再试(gdb) dump memory /home/demo/2000.dump 0x80000000 0x100880000Segmentation fault (core dumped)

打印进程的内存

cat /proc/25530/smaps
#打印进程的内存-过滤
cat /proc/25530/smaps |grep -B 2 'Rss:'cat /proc/25530/smaps00400000-00401000 r-xp 00000000 fd:02 654494                             /opt/jdk1.8.0_171/bin/javaSize:                  4 kBRss:                   4 kBPss:                   2 kBShared_Clean:          4 kBShared_Dirty:          0 kBPrivate_Clean:         0 kBPrivate_Dirty:         0 kBReferenced:            4 kBAnonymous:             0 kBAnonHugePages:         0 kBSwap:                  0 kBKernelPageSize:        4 kBMMUPageSize:           4 kBLocked:                0 kBProtectionKey:         0VmFlags: rd ex mr mp me dw sd
正文到此结束