ps命令tips
我经常使用的 ps
命令使用蚕食 aux
可以显示系统所有进程,不过,没有按照进程关系进行排列,有时候并不方便观察
ps还有一个参数 f
可以按照进程树状关系列出
ps auxf
可以看到完整的树状关系
root 785 0.0 0.1 22324 2800 ? Ss May07 0:02 /usr/lib/systemd/systemd-logind
root 794 0.0 0.2 29816 5364 ? SLs May07 0:00 /usr/sbin/wickedd-nanny --systemd --foreground
root 813 0.0 0.0 4744 1692 tty1 Ss+ May07 0:00 /sbin/agetty --noclear tty1 linux
root 885 0.0 0.3 204012 6808 ? Sl May07 0:00 /usr/sbin/gdm
root 899 0.0 0.3 285240 7400 ? Sl May07 0:00 \_ /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Displays/_0
root 921 0.0 1.6 259912 31776 tty7 Ss+ May07 0:02 \_ /usr/bin/Xorg :0 -background none -verbose -auth /run/gdm/auth-for-gdm-p51Yhq/database -seat seat0 vt7
root 1073 0.0 0.4 244484 8264 ? Sl May07 0:00 \_ gdm-session-worker [pam/gdm-launch-environment]
gdm 1083 0.0 0.6 557760 12752 ? Ssl May07 0:00 \_ /usr/lib/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
gdm 1127 0.0 1.7 952932 32896 ? Sl May07 0:12 \_ /usr/lib/gnome-settings-daemon-3.0/gnome-settings-daemon
gdm 1249 0.0 9.4 1398440 181736 ? Sl May07 2:07 \_ gnome-shell --mode=gdm
root 925 0.0 0.3 280636 6448 ? Ssl May07 0:01 /usr/lib/accounts-daemon
polkitd 937 0.0 0.9 521572 18428 ? Ssl May07 0:11 /usr/lib/polkit-1/polkitd --no-debug
gdm 1077 0.0 0.2 36844 4736 ? Ss May07 0:05 /usr/lib/systemd/systemd --user
gdm 1080 0.0 0.1 88408 2008 ? S May07 0:00 \_ (sd-pam)
gdm 1086 0.0 0.0 14172 1848 ? S May07 0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --autostart /usr/share/gdm/greeter/autostart
gdm 1087 0.0 0.1 39704 2644 ? Ss May07 0:00 /bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
gdm 1093 0.0 0.2 335560 5592 ? Sl May07 0:00 /usr/lib/at-spi2/at-spi-bus-launcher
gdm 1098 0.0 0.1 39600 3840 ? S May07 0:00 \_ /bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
如果要指定输出列,例如要指定cgroup显示,则使用
ps axfw -eo -eo pid,user,cgroup,args
则显示
PID USER CGROUP COMMAND
2 root - [kthreadd]
3 root - \_ [ksoftirqd/0]
5 root - \_ [kworker/0:0H]
7 root - \_ [rcu_sched]
8 root - \_ [rcu_bh]
9 root - \_ [migration/0]
....
1 root 11:devices:/init.scope,10:p /usr/lib/systemd/systemd --switched-root --system --deserialize 22
446 root 11:devices:/system.slice/sy /usr/lib/systemd/systemd-journald
478 root 11:devices:/system.slice/sy /usr/lib/systemd/systemd-udevd
718 root 11:devices:/system.slice/rn /usr/sbin/rngd --foreground --fill-watermark=3700
720 message+ 11:devices:/system.slice/db /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
725 root 11:devices:/system.slice/wi /usr/lib/wicked/bin/wickedd-dhcp4 --systemd --foreground
...
找出消耗最多CPU的进程
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
上述命令非常好,按照CPU进行降序排序,方便找出消耗最多的进程。并且 cmd
可以显示完整的命令行,方便找出一些命令相同但是实际参数运行不同的进程
如果不需要完整命令行,则可以使用 comm
简化输出命令行内容(只显示进程主命令)
ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head
参考
Last updated