Câu lệnh (chương trình) `ps` trên
ps -eFH
ps awwxf
rồi `grep` ra từ khóa mình cần tìm.
Ví dụ:
$ ps -eFH | grep firefox
hvn 930 1 17 341885 728808 2 06:52 ? 00:03:27 firefox
hvn 1055 930 4 106318 63936 2 06:53 ? 00:00:48 /usr/lib/firefox/plugin-container /usr/lib/mozilla/plugins/libflashplayer.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 930 plugin
hvn 1093 930 0 68027 20356 0 06:53 ? 00:00:00 /usr/lib/firefox/plugin-container /opt/google/talkplugin/libnpgoogletalk.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 930 plugin
hvn 1562 1481 0 2670 1104 1 07:12 pts/6 00:00:00 grep --color=auto firefox
Biết thế coi như là đủ nếu bạn không cần gì đặc biệt hơn.
Sau đây là một vài option đặc biệt.
Trước tiên, một điều cần biết là lệnh `ps` hỗ trợ 3 style để pass option.
Kiểu -e -F (hay -eF) của UNIX, kiểu `ps awwx` (không có dấu - ở đầu) của BSD và kiểu --dài_dòng của GNU. 3 style này không nên dùng lẫn lộn nhau.
Các option sau đây thuộc style UNIX:
1. -C #Chọn process bằng tên câu lệnh.
Ví dụ:
$ ps -C firefox
PID TTY TIME CMD
930 ? 00:04:13 firefox
Có thể thấy số kết quả câu lệnh này khác với `ps | grep [f]irefox` bởi câu lệnh trên chỉ tìm theo tên câu lệnh, trong khi câu lệnh sử dụng `grep` là để tìm từ khóa. (tức từ khóa có thể không phải câu lệnh, có thể là tên user, số pid, args của câu lệnh)
2. -o format #chọn những gì output sẽ hiển thị
hvn@archhvn: ~ () $ ps -C firefox -o pid=Dấu = ở đuôi mỗi "format specifier" làm mất đi tên của cột hiển thị.
930
hvn@archhvn: ~ () $ ps -C firefox -o pid
PID
930
$ ps -C firefox -opid,user,cmd,pcpu,pmem
PID USER CMD %CPU %MEM
930 hvn firefox 16.2 18.8
$ ps -C firefox -opid=,user=,cmd=,pcpu=,pmem=
930 hvn firefox 16.2 19.0
Các format specifier có trong mục STANDARD FORMAT SPECIFIERS của `man ps`
3. --sort # sắp xếp output theo một cột nào đó - kếp hợp với -o
Ví dụ list ra 10 process dùng nhiều cpu nhất.
$ ps -eo cmd,pcpu --sort +pcpu | tail
urxvt 0.1
tmux new -d -s main.tmux 0.1
urxvt 0.1
parcellite 0.2
/usr/lib/ibus/ibus-engine-m 0.2
top 0.3
ibus-daemon 0.8
X :0 1.4
/usr/lib/firefox/plugin-con 4.3
firefox 15.9
Tìm MEM (RSS) tất cả các process tên salt-master dùng:
ReplyDelete# ps -C salt-master -o pid,ppid,cmd,rss
PID PPID CMD RSS
742 1 /usr/bin/python /usr/bin/sa 19032
1020 742 /usr/bin/python /usr/bin/sa 28044
1027 742 /usr/bin/python /usr/bin/sa 17096
1028 742 /usr/bin/python /usr/bin/sa 20052
1033 742 /usr/bin/python /usr/bin/sa 40196
1034 742 /usr/bin/python /usr/bin/sa 42256
1039 742 /usr/bin/python /usr/bin/sa 41844
1040 742 /usr/bin/python /usr/bin/sa 42112
1043 742 /usr/bin/python /usr/bin/sa 42016
dùng ``args`` ở cuối cùng khi format (-o) sẽ in ra đầy đủ câu lệnh.
ReplyDelete$ ps -C salt-master -o pid,ppid,rss,args
PID PPID RSS COMMAND
26025 1 344 /usr/bin/python /usr/bin/salt-master
26050 26025 25456 /usr/bin/python /usr/bin/salt-master
26057 26025 440 /usr/bin/python /usr/bin/salt-master
26058 26025 11384 /usr/bin/python /usr/bin/salt-master
26063 26025 85116 /usr/bin/python /usr/bin/salt-master
26064 26025 88716 /usr/bin/python /usr/bin/salt-master
26065 26025 0 [salt-master]
26077 26025 91196 /usr/bin/python /usr/bin/salt-master
26078 26025 87692 /usr/bin/python /usr/bin/salt-master