完整文檔php
ps 命令用於顯示命令執行瞬間的進程狀態(Process Status)。若是想動態查看進程狀態可使用 top 命令。css
前臺進程:由終端初始化,能夠經過命令行進行交互。須要由用戶啓動,不能做爲系統功能或服務的一部分自動啓動。
後臺進程:進程在後臺運行,沒有鏈接到終端,沒法跟用戶交互。
守護進程:特殊的後臺進程,在系統啓動時啓動,並做爲服務一直運行。做爲系統任務啓動(做爲服務運行)。用戶能夠經過 init 進程進行控制。html
每一個進程都有一分內存空間,當對已有進程的內存空間進行完整複製,就能夠建立出一個新的進程。子進程和父進程只有進程的 PID 不一樣。mysql
Linx 中有兩種方式建立進程:linux
每一個進程都有系統中獨一無二的進程 ID(PID)。每一個進程都有父進程的進程 ID(PPID)。nginx
Linux 系統啓動後,內核首先運行 init 進程(Linux 中全部進程的父進程)。init 進程的 PID 爲 1。其餘全部進程都是經過 fork 這個 init 進程獲得的。web
若是隻是想查看某個進程的 PID,可使用 pidof 命令,例如:sql
pidof systemd 1085
執行命令便可啓動前臺進程,可使用 Ctrl + Z
給前臺進程發送 SIGSTOP 信號暫停進程並轉入後臺運行:shell
./my.shell
jobs
命令能夠查看後臺進程,bg
命令能夠啓動剛轉入後臺並暫停的進程。fg
加 PID 能夠將後臺進程轉爲前臺進程。
在命令後面添加 &
符號則能夠啓動後臺進程。centos
./my.shell &
Linux 中進程的 5 種狀態:
pstree 能夠顯示整個進程樹:
[root@VM_120_242_centos ~]# pstree
systemd─┬─acpid
├─2*[agetty]
├─atd
├─auditd───{auditd}
├─barad_agent─┬─barad_agent
│ └─barad_agent─┬─sh─┬─grep
│ │ ├─ntpdate
│ │ └─sed
│ └─3*[{barad_agent}]
├─chronyd
├─crond
├─dbus-daemon
├─gssproxy───5*[{gssproxy}]
├─lsmd
├─lvmetad
├─mysqld───35*[{mysqld}]
├─nginx───nginx
├─php-fpm───32*[php-fpm]
├─polkitd───5*[{polkitd}]
├─rpc.statd
├─rpcbind
├─rsyslogd───2*[{rsyslogd}]
├─sap1002
├─sap1004
├─sap1005
├─sap1009
├─secu-tcs-agent
├─sgagent───{sgagent}
├─sshd───sshd───bash───pstree
├─svnserve
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vsftpd
D 不可中斷,一般是 IO
R 運行 runnable (on run queue)
S 中斷 sleeping
T 中止 traced or stopped
Z 僵死 zombie process
-A 顯示全部進程
-e 等於「-A」
e 顯示環境變量
-f 顯示程序間的關係
-u 指定用戶的全部進程
-aux 顯示全部包含其餘使用者的行程
-e
或 -A
能夠列出所有進程
示例:
ps -e
PID TTY TIME CMD
1 ? 01:27:34 systemd
2 ? 00:00:01 kthreadd
3 ? 00:11:22 ksoftirqd/0
...
示例:
ps -u root
PID TTY TIME CMD
1 ? 00:00:16 systemd
2 ? 00:00:00 kthreadd
3 ? 00:04:25 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
...
-o pid,ppid,comm,cmd
能夠只顯示 PID,PPID,COMMAND,CMD
示例:
[root@VM_120_242_centos ~]# ps -eo pid,ppid,comm,cmd
PID PPID COMMAND CMD
1 0 systemd /usr/lib/systemd/systemd --system --deserialize 23
2 0 kthreadd [kthreadd]
3 2 ksoftirqd/0 [ksoftirqd/0]
5 2 kworker/0:0H [kworker/0:0H]
7 2 migration/0 [migration/0]
1011 738 sshd sshd: root@pts/0
1013 1011 bash -bash
2337 1013 ps ps -eo pid,ppid,comm,cmd
3671 31510 php-fpm php-fpm: pool www
4062 31510 php-fpm php-fpm: pool www
7839 31510 php-fpm php-fpm: pool www
31510 1 php-fpm php-fpm: master process (/etc/php-fpm.conf)
...
e
能夠查看環境變量。
示例:
ps e PID TTY STAT TIME COMMAND 1013 pts/0 Ss 0:00 -bash USER=root LOGNAME=root HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin MAIL=/var/mail/root SHELL=/bin/bash SSH_CLIENT=183.15.178.23 60777 22 SSH_CONNECTION=183.15.178.23 60777 10.135.120.242 22 SSH_TTY=/dev/pts/0 TERM=x 1239 pts/0 R+ 0:00 ps e XDG_SESSION_ID=1408128 HOSTNAME=VM_120_242_centos TERM=xterm SHELL=/bin/bash HISTSIZE=3000 SSH_CLIENT=183.15.178.23 60777 22 QTDIR=/usr/lib64/qt-3.3 QTINC=/usr/lib64/qt-3.3/include SSH_TTY=/dev/pts/0 QT_GRAPHICSSYSTEM_CHECKED=1 USER=root ...
-f
能夠查看比 -e
更多的字段。
示例:
[root@VM_120_242_centos ~]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 1013 1011 0 12:41 pts/0 00:00:00 -bash
root 1425 1013 0 12:45 pts/0 00:00:00 ps -f
[root@VM_120_242_centos ~]# ps
PID TTY TIME CMD
1013 pts/0 00:00:00 bash
-aux
能夠查看環境變量
示例:
[root@VM_120_242_centos ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 188708 2268 ? Ss 2017 87:34 /usr/lib/systemd/systemd --system --deserialize 23
root 2 0.0 0.0 0 0 ? S 2017 0:01 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2017 11:22 [ksoftirqd/0]
...
示例:
[root@VM_120_242_centos ~]# ps -e | grep ssh
738 ? 00:09:18 sshd
1011 ? 00:00:00 sshd
[root@VM_120_242_centos ~]# ps -e | grep svn
9780 ? 00:00:05 svnserve
-axjf
[root@VM_120_242_centos ~]# ps -axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:01 [kthreadd]
2 3 0 0 ? -1 S 0 11:22 \_ [ksoftirqd/0]
2 5 0 0 ? -1 S< 0 0:00 \_ [kworker/0:0H]
2 7 0 0 ? -1 S 0 0:00 \_ [migration/0]
738 1011 1011 1011 ? -1 Ss 0 0:00 \_ sshd: root@pts/0 1011 1013 1013 1013 pts/0 2132 Ss 0 0:00 \_ -bash 1013 2132 2132 1013 pts/0 2132 R+ 0 0:00 \_ ps -axjf 31510 31511 31510 31510 ? -1 S 48 0:19 \_ php-fpm: pool www 31510 31512 31510 31510 ? -1 S 48 2:18 \_ php-fpm: pool www 31510 31513 31510 31510 ? -1 S 48 0:19 \_ php-fpm: pool www 1 12438 12438 12438 ? -1 Ss 0 0:00 nginx: master process /usr/sbin/nginx 12438 8540 12438 12438 ? -1 S 994 0:12 \_ nginx: worker process ...