- 列出相关进程
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>
- 查看指定进程状态
cat /proc/pid/status
具体详细说明见:http://blog.chinaunix.net/uid-24347760-id-2943156.html
这里罗列的信息过多,就不粘出来了,如果只需要看指定信息就grep一下就好
例如内存占用:cat /proc/18334/status | grep VmRSS
另外:想要知道指定pid的进程是否在运行只要判断 /proc/$pid$ 这个文件夹存在不存在就好了 - 想要查询指定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}
深入一部:查询这几个进程的内存占用情况
<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"]
- 查看指定端口相关进程:
lsof -Pn | grep :8080
that's all