Linux和Unix的PS命令示例

403 阅读4分钟

进程状态命令 Unix/Linux

PS 缩写为process status 命令列出在Linux/Unix机器上运行的活动进程的信息。

这个命令列出了一个shell中所有正在运行的进程。

我们将在下面的章节中看到经常使用的ps命令的例子。所有这些命令都在Linux/Unix的命令行中执行

不带参数的ps命令

不带参数的ps命令列出了当前shell中的所有进程

并且输出为

PID TTY          TIME CMD
10169 pts/0    00:00:00 bash
10247 pts/0    00:00:00 ps

ps -aef命令

ps -aef命令将系统中所有进程的信息输出到控制台。

并输出为

nagios     408     1  0 Jul17 ?        00:00:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f
root       410     1  0 Jul17 ?        00:00:10 /usr/sbin/cron -f
root       415     1  0 Jul17 ?        00:04:38 /usr/sbin/irqbalance --foreground
message+   416     1  0 Jul17 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root       429     1  0 Jul17 ?        00:04:09 /usr/sbin/rsyslogd -n
root       432     1  0 Jul17 ?        00:00:08 /lib/systemd/systemd-logind
Debian-+   438     1  0 Jul17 ?        00:27:01 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
root       439     1  0 Jul17 tty1     00:00:00 /sbin/agetty --noclear tty1 linux
root       441     1  0 Jul17 hvc0     00:00:00 /sbin/agetty --keep-baud 115200,38400,9600 hvc0 vt220
root       471     1  0 Jul17 ?        00:28:35 /usr/sbin/xe-daemon -p /var/run/xe-daemon.pid
root       475   471  0 Jul17 ?        00:00:00 logger -t xe-daemon
root       478   471  0 Jul17 ?        00:00:00 logger -t xenstore
ntp        515     1  0 Jul17 ?        00:07:04 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 109:113
Debian-+   818     1  0 Jul17 ?        00:00:01 /usr/sbin/exim4 -bd -q30m
root       897     1  0 Jul25 ?        00:00:00 /lib/systemd/systemd --user
root       898   897  0 Jul25 ?        00:00:00 (sd-pam)
root      5636     2  0 Sep20 ?        00:00:03 [kworker/0:1]
root      6170     2  0 Sep18 ?        00:00:03 [kworker/0:2]
root      8211     2  0 Aug22 ?        00:00:00 [bioset]

PS with greap 搜索命令ps -aef| grep java 我们可以用ps命令与grep进行管道连接。列出Linux/UNIX中所有名字为java的进程。

root:~[0]# ps -aef| grep java

并输出为

root     27101     1  0 Aug09 ?        00:34:40 /opt/java-jdk/jdk1.8.0_152/bin/java -classpath /root/sumfox/.mvn/wrapper/maven-wrapper.jar -Dmaven.home=/root -Dmaven.multiModuleProjectDirectory=/root/sumfox org.apache.maven.wrapper.MavenWrapperMain -Pprod
root     27783 27101  0 Aug09 ?        00:37:20 /opt/java-jdk/jdk1.8.0_152/jre/bin/java -cp /root/sumfox/target/classes:/root/.m2/repository/org/springframework/boot/
.............................

强制杀死进程ID

Kill proceed to kill the process which has an id of the process.我们可以使用kill -9命令来强行杀死该进程。

如何通过名字杀死进程 Killall

Killall 是一条用进程名称杀死进程的命令

root:~[0]#Killall processname

processname是进程的名称。

如何停止进程

kill 0可以停止所有的进程。

root:~[0]#Kill 0 processname

进程树命令

该命令提供所有进程的进程树。它给出了父进程和子进程的链接信息。

root:~[0]# ps -e --forcast

输出是

31138 ?        00:00:25 packagekitd
31142 ?        00:00:00 polkitd
  897 ?        00:00:00 systemd
  898 ?        00:00:00  \_ (sd-pam)
27101 ?        00:34:40 java
27783 ?        00:37:20  \_ java
30699 ?        00:01:59 postgres
30701 ?        00:00:01  \_ postgres

ps aux命令

该命令列出了所有用户的所有进程

输出为

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.4  57276  4876 ?        Ss   Jul17   1:09 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jul17   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jul17   0:07 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Jul17   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Jul17   7:21 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    Jul17   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Jul17   0:12 [migration/0]
root        10  0.0  0.0      0     0 ?        S<   Jul17   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S    Jul17   0:15 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    Jul17   0:00 [cpuhp/0]
root        13  0.0  0.0      0     0 ?        S    Jul17   0:00 [cpuhp/1]
root        14  0.0  0.0      0     0 ?        S    Jul17   0:16 [watchdog/1]

ps -ef 命令

该命令列出了所有进程的完整格式。

root:~[0]#ps -ef or ps -eF

并输出为

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jul17 ?        00:01:09 /sbin/init
root         2     0  0 Jul17 ?        00:00:00 [kthreadd]
root         3     2  0 Jul17 ?        00:00:07 [ksoftirqd/0]
root         5     2  0 Jul17 ?        00:00:00 [kworker/0:0H]
root         7     2  0 Jul17 ?        00:07:21 [rcu_sched]
root         8     2  0 Jul17 ?        00:00:00 [rcu_bh]
root         9     2  0 Jul17 ?        00:00:12 [migration/0]
root        10     2  0 Jul17 ?        00:00:00 [lru-add-drain]
root        11     2  0 Jul17 ?        00:00:15 [watchdog/0]
root        12     2  0 Jul17 ?        00:00:00 [cpuhp/0]
root        13     2  0 Jul17 ?        00:00:00 [cpuhp/1]