Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。
kill 命令用于杀死进程。
ps (参数)
> ps -A
PID TTY TIME CMD
1 ? 00:11:10 systemd
2 ? 00:00:04 kthreadd
4 ? 00:00:00 kworker/0:0H
6 ? 00:00:07 ksoftirqd/0
7 ? 00:00:02 migration/0
8 ? 00:00:00 rcu_bh
9 ? 00:43:24 rcu_sched
10 ? 00:00:00 lru-add-drain
11 ? 00:00:12 watchdog/0
12 ? 00:00:10 watchdog/1
13 ? 00:00:11 migration/1
14 ? 00:06:22 ksoftirqd/1
16 ? 00:00:00 kworker/1:0H
17 ? 00:00:11 watchdog/2
...
> ps -u deploy
PID TTY TIME CMD
7698 ? 00:29:50 java
13783 ? 00:16:42 java
30027 ? 00:03:20 java
> ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan08 ? 00:11:10 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 Jan08 ? 00:00:04 [kthreadd]
root 4 2 0 Jan08 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Jan08 ? 00:00:07 [ksoftirqd/0]
root 7 2 0 Jan08 ? 00:00:02 [migration/0]
> ps -ef | grep java
ps -ef | grep ssh
root 1394 1 0 Jan08 ? 00:04:23 /usr/sbin/sshd -D
root 30899 1394 0 22:44 ? 00:00:00 sshd: root@pts/2
root 30922 30899 0 22:44 ? 00:00:00 /usr/libexec/openssh/sftp-server
root 31625 1394 0 22:49 ? 00:00:00 sshd: root [priv]
sshd 31627 31625 0 22:49 ? 00:00:00 sshd: root [net]
root 31804 30905 0 22:50 pts/2 00:00:00 grep --color=auto ssh
> ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 R 0 1275 30905 0 80 0 - 38304 - pts/2 00:00:00 ps
4 S 0 30905 30899 0 80 0 - 28895 do_wai pts/2 00:00:00 bash
> ps -axjf
1 1394 1394 1394 ? -1 Ss 0 4:23 /usr/sbin/sshd -D
1394 30899 30899 30899 ? -1 Ss 0 0:00 \_ sshd: root@pts/2
30905 1873 1872 30905 pts/2 1872 S+ 0 0:00 | \_ grep --color=auto ssh
30899 30922 30922 30922 ? -1 Ss 0 0:00 \_ /usr/libexec/openssh/sftp-server
> ps aux | more
> ps aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
STAT状态位常见的状态字符
rumenz.txt
文件> ps aux > rumenz.txt
> ps -o pid,ppid,pgrp,session,tpgid,comm
PID PPID PGRP SESS TPGID COMMAND
2292 30905 2292 30905 2292 ps
30905 30899 30905 30905 2292 bash
ps aux
和ps –aux
的区别请注意
ps -aux
不同于ps aux
。POSIX和UNIX的标准要求ps -aux
打印用户名为x
的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为x
不存在,ps
的将会解释为ps aux
,而且会打印一个警告。这种行为是为了帮助转换旧脚本和习惯。它是脆弱的,即将更改,因此不应依赖。
ps aux
和ps -ef
两者的输出结果差别不大,但展示风格不同。
aux
是BSD
风格,-ef
是System V
风格。这是次要的区别,一个影响使用的区别是aux
会截断command
列,而-ef
不会。当结合grep
时这种区别会影响到结果。
原文链接:https://rumenz.com/rumenbiji/linux-ps.html
微信公众号:入门小站
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。