6.1 linux内核管理 :内核进程
基础选项
Basic options:
-A, -e all processes //所有的进程
-a all with tty, except session leaders //所有终端,不包含session进程
a all with tty, including other users //所有终端,包含其他用户
-d all except session leaders //【就是ps -A 去掉所有session进程】
-N, --deselect negate selection
r only running processes //正在运行的进程 ps r -A
T all processes on this terminal //这个终端的所有进程 ps T
x processes without controlling ttys //【就是ps -A 去掉所有tty为tty的进程】
ps -A //所有的进程
$ ps -A
PID[进程ID] TTY[终端位置] TIME[使用CPU的时间] CMD[下达的指令名称]
1 ? 00:00:02 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:02 rcu_sched
8 ? 00:00:00 rcu_bh
10526 pts/1 00:00:00 ps[这个命令的进程]
14205 pts/19 00:00:00 bash[session进程]
查看当前终端机
$ tty
/dev/pts/1
ps -a //所有终端,不包含session进程
ps -a
PID[进程ID] TTY[终端位置] TIME[使用CPU的时间] CMD[下达的指令名称]
14364 pts/19 00:00:01 Navicat.exe
15923 pts/1 00:00:00 ps
Ps显示完整的命令
ps -ef
$ ps a //所有终端,包含其他用户
PID[进程ID] TTY[终端位置] STAT[进程状态] TIME[使用CPU的时间] COMMAND[下达的指令名称]
1029 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux
1031 tty7 Ssl+ 1:11 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/ru
8114 pts/1 Ss 0:00 bash
12720 pts/1 R+ 0:00 ps a
14364 pts/19 S+ 0:00 /media/psf/Home/Downloads/navicat121_mysql_cs_x86/Navicat/Navicat.exe
STAT状态含义
S Sleep 睡眠。通常是在等待某个事件的发生,如一个信号或有输入可用
R Running 运行。 严格来说,应是“可运行”,即在运行队列中,处于正在执行或即将运行状态
D 不可中断的睡眠(等待)。通常是在等待输入或输出完成
T Terminate(terminate)停止。通常是被shell作业控制所停止,或者进程正处于调试器的控制之下
Z Zomnie(zombie)僵尸进程,通常是该进程已经死亡,但父进程没有调用wait类函数来释放该进程的资源
N Nice(nice)低优先级任务
s 进程是会话期首进程
+ 进程属于前台进程组
l 进程是多线程的
< 高优先级任务
选择选项
Selection by list:
-C <command> command name //命令名字
-G, --Group <GID> real group id or name //组的id或者名字
-g, --group <group> session or effective group name //会话或者有效的组名
-p, p, --pid <PID> process id //进程ID
--ppid <PID> parent process id //父级的进程ID
-q, q, --quick-pid <PID>
process id (quick mode)
-s, --sid <session> session id
-t, t, --tty <tty> terminal //终端
-u, U, --user <UID> effective user id or name //有效的id或名字
-U, --User <UID> real user id or name //真实的id或名字
ps a
ps a
PID TTY STAT TIME COMMAND
1029 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux
1031 tty7 Ssl+ 4:49 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/ru
8114 pts/1 Ss+ 0:00 bash
9573 pts/20 Ss 0:00 bash
11389 pts/20 R+ 0:00 ps a
12962 pts/4 Ss+ 0:00 bash
14205 pts/19 Ss+ 0:00 bash
ps -C //根据命令行查询
$ ps -C bash
PID TTY TIME CMD
8114 pts/1 00:00:00 bash
9573 pts/20 00:00:00 bash
12962 pts/4 00:00:00 bash
14205 pts/19 00:00:00 bash
ps -p //根据进程id查询
$ ps -p 1029
PID TTY TIME CMD
1029 tty1 00:00:00 agetty
ps -t //根据tty查询
$ ps -t pts/20
PID TTY TIME CMD
9573 pts/20 00:00:00 bash
12861 pts/20 00:00:00 ps
ps -u //根据用户来查询
$ ps -afu sgx
UID PID PPID C STIME TTY TIME CMD
sgx 1604 1 0 19:38 ? 00:00:00 /lib/systemd/systemd --user
sgx 1606 1604 0 19:38 ? 00:00:00 (sd-pam)
输出格式
Output formats:
-F extra full //额外的全部
-f full-format, including command lines //全部格式,包括命令行
f, --forest ascii art process tree //ascii 艺术进程树
-H show process hierarchy //分层显示进
-j jobs format //任务格式
j BSD job control format
-l long format //长格式
l BSD long format
ps -F
$ ps -F
UID PID PPID C[cpu百分比] SZ RSS[进程占用固定的内存量kb] PSR STIME TTY TIME CMD
sgx 9573 8106 0 2161 4744 1 Sep12 pts/20 00:00:00 bash
sgx 23506 9573 0 2374 3452 1 00:02 pts/20 00:00:00 ps -F
ps -l
$ ps -l
F[程序的旗标] S[STAT] UID PID PPID C PRI[优先权,越小越先执行] NI[nice,越大越易] ADDR[内核数,一般是-] SZ[使用内存的大小] WCHAN[进程是否在运行] TTY TIME CMD
0 S 1000 9573 8106 0 80 0 - 2161 wait pts/20 00:00:00 bash
0 R 1000 24725 9573 0 80 0 - 2305 - [表示正在运行] pts/20 00:00:00 ps
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程使用的虚拟內存量(KB);
RSS 该进程占用的固定內存量(KB)(驻留中页的数量);
TTY 该进程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。
若为pts/0等,则表示由网络连接主机进程
WCHAN 当前进程是否正在進行,若为-表示正在進行;
START 該進程被觸發启动时间;
TIME 該进程實際使用CPU運行的时间;
COMMAND 命令的名称和参数;
STAT狀態位常見的狀態字符
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
ps aux
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 51804 3536 ? Ss Apr10 0:28 /usr/lib/systemd/systemd --system --deserialize 24
root 2 0.0 0.0 0 0 ? S Apr10 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr10 0:07 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Apr10 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Apr10 0:00 [migration/0]