linux进程相关

  1. 列出相关进程 ps -ef | grep xxx
    <pre>

ps -ef | grep nginx

UID PID PPID C STIME TTY TIME CMD
root 18334 1 0 Nov22 ? 00:00:00 nginx: master process nginx
www-data 18335 18334 0 Nov22 ? 00:00:11 nginx: worker process
www-data 18336 18334 0 Nov22 ? 00:01:23 nginx: worker process
www-data 18337 18334 0 Nov22 ? 00:01:22 nginx: worker process
www-data 18338 18334 0 Nov22 ? 00:01:13 nginx: worker process
root 26810 26726 0 15:46 pts/0 00:00:00 grep --color=auto nginx
</pre>

  1. 查看指定进程状态 cat /proc/pid/status
    具体详细说明见:http://blog.chinaunix.net/uid-24347760-id-2943156.html
    这里罗列的信息过多,就不粘出来了,如果只需要看指定信息就grep一下就好
    例如内存占用:cat /proc/18334/status | grep VmRSS

    另外:想要知道指定pid的进程是否在运行只要判断 /proc/$pid$ 这个文件夹存在不存在就好了
  2. 想要查询指定pid的子进程方法(ruby)

%x{ps -ef | grep #{target_pid}}.split("\n").map{|x|x.split(' ')[1..2]}.select{|x|x[1].to_i==target_pid.to_i}.map{|x|x[0].to_i}

Paste_Image.png

深入一部:查询这几个进程的内存占用情况
<pre>
def pid_memory_use(_pid)
proc_status = "/proc/#{_pid}/status"
if File.exists? proc_status
str = %x{cat #{proc_status} | grep VmRSS }
return str.gsub(/(VmRSS:)|[\t\n]/,'').strip
end
return '-1'
end
</pre>

2.1.4 :021 > [18335, 18336, 18337, 18338].map{|_pid|pid_memory_use(_pid)}
=> ["2548 kB", "1800 kB", "1800 kB", "2548 kB"]

  1. 查看指定端口相关进程:lsof -Pn | grep :8080

that's all

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容