进程状态
- 运行态:running
- 就绪态:ready
- 睡眠态:
- 可中断
- 不可中断
- 停止态:
- stopped
- 暂停于内存中,但不会被调度,除非手动启动之
- 僵死态:
- zombie
pstree
- man 手册中的解释
- display a tree of processes
- 以树形方式显示进程
[root@2w3i-Cs ~]# pstree
init─┬─auditd───{auditd}
├─crond
├─dbus-daemon───{dbus-daemon}
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─rsyslogd───3*[{rsyslogd}]
├─sshd─┬─sshd───bash───man───sh───sh───less
│ └─sshd───bash───pstree
└─udevd───2*[udevd]
[root@2w3i-Cs ~]#
ps
常用组合
- ps aux
- a 与终端相关的进程
- u 以用户为中心组织进程状态信息显示
- x 与终端无光的进程
- ps -ef
- e 显示所有进程
- f 显示完整格式程序信息
- ps -eFH
- e 显示所有进程
- F 显示完整格式的进程信息
- H 以进程层级格式显示进程相关信息
- ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
- pid:进程id
- tid:线程id
- class:进程调度策略
- rtprio:实时优先级
- ni:nice值
- pri:priority,优先级
- psr:processor,CPU
- pcpu:CPU利用率
- stat:进程状态
- comm: 运行的命令
- ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
- euid:有效的用户ID.(别名 uid)
- ruid:真实的用户ID
- tty:控制终端.(别名 tt)
- tpgid:终端下的前台进程,值为-1表示与终端无光
- sess:session id.(别名 sid)
- pgrp:进程组ID
- ppid:父进程ID
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:39 ? 00:00:00 init
root 2 1 0 07:39 ? 00:00:00 [kthreadd/431882]
root 3 2 0 07:39 ? 00:00:00 [khelper/431882]
root 365 1 0 07:39 ? 00:00:00 /usr/sbin/sshd
root 538 1 0 07:46 ? 00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
nobody 539 538 0 07:46 ? 00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
nobody 540 538 0 07:46 ? 00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
root 553 365 0 08:25 ? 00:00:00 sshd: root@pts/1
root 555 553 0 08:25 pts/1 00:00:00 -bash
root 575 555 0 08:37 pts/1 00:00:00 ps -ef
[root@localhost ~]#
pgrep, pkill
- pgrep
- 语法
- pgrep [options] pattern
- 显示模式匹配进程
- 语法
[root@2w3i-Cs ~]# pgrep -l sshd
910 sshd
1029 sshd
pkill
- 语法
- pkill [options] pattern
- 模式匹配,直接杀死运行中的程序
- 语法
pgrep, pkill
- 常用选项[options]
- -u uid: effective user
- -U uid: real user
- -t terminal 与指定终端相关进程
- -l 同时显示进程名和PID
- -f 显示完整格式的进程名
- -P pid 显示指定pid的其父进程的进程列表
- 常用选项[options]
pidof
- 根据进程名获取其PID
[root@2w3i-Cs ~]# pidof sshd
1029 910
[root@2w3i-Cs ~]#
top
top - 08:31:26 up 51 min, 1 user, load average: 0.00, 0.01, 0.01
Tasks: 10 total, 1 running, 9 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 262144k total, 84248k used, 177896k free, 0k buffers
Swap: 131072k total, 0k used, 131072k free, 73424k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2896 1364 1184 S 0.0 0.5 0:00.01 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/431882
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/431882
365 root 20 0 9004 1028 480 S 0.0 0.4 0:00.00 sshd
538 root 20 0 11036 4392 1216 S 0.0 1.7 0:00.00 ssserver
539 nobody 20 0 11532 5304 1708 S 0.0 2.0 0:00.45 ssserver
540 nobody 20 0 11512 5208 1712 S 0.0 2.0 0:00.21 ssserver
553 root 20 0 12056 3696 2960 S 0.0 1.4 0:00.08 sshd
555 root 20 0 3044 1552 1316 S 0.0 0.6 0:00.00 bash
574 root 20 0 2564 1060 888 R 0.0 0.4 0:00.05 top
- 第一行
- 08:31:26
- 当前时间
- up 51 min
- 系统已运行时间
- 1 user
- 当前在线用户
- load average: 0.00, 0.01, 0.01
- 平均负载 1分钟,5分钟,15分钟
- 08:31:26
- 第二行 Tasks:
- 10 total
- 当前总作业数
- 1 running
- 当前处于运行状态中作业数
- 9 sleeping
- 当前处于睡眠状态中作业数
- 0 stopped
- 当前处于停止状态中作业数
- 0 zombie
- 当前处于僵死状态中作业数
- 10 total
- 第三行 Cpu(s):
- 0.0%us
- 用户空间占用CPU百分比
- 0.0%sy
- 内核空间占用CPU百分比
- 0.0%ni
- 用户进程空间内改变过优先级的进程占用CPU百分比
- 100.0%id
- 当前空闲CPU百分比
- 0.0%wa
- 等待输入输出的CPU时间百分比
- 0.0%hi
- 硬中断占用CPU时间百分比
- 0.0%si
- 软中断占用CPU时间百分比
- 0.0%st
- 被虚拟化偷走的CPU时间百分比
- 0.0%us
- 第四行 Mem:
- 262144k total
- 总容量
- 84248k used
- 已经使用
- 177896k free
- 空闲容量
- 0k buffers
- I/O缓存 在内存与硬盘之间
- 73424k cached
- 高速缓存 在CPU与内存之间
- 262144k total
- 第五行 Swap:
- 同上第四行
第六行 (高亮标题)
- PID 进程标识符
- USER 进程所有者
- PR 优先级
- NI nice值
- VIRT 虚拟内存大小
- RES 常驻内存
- SHR 共享内存
- S 进程状态
- %CPU CPU时间占用百分比
- %MEM 内存空间占用百分比
- TIME+ 使用CPU时间总计
- COMMAND 执行的命令
S 进程状态
- R 运行态
- S 可中断睡眠态
- D 不可中断睡眠态
- T 停止态
- Z 僵死态
- + 前台进程
- l 多线程进程
- N 低优先级进程
- < 高优先级进程
- s session leader
top内置命令
- 排序
- P 键 以占据的CPU百分比排序
- M 键 以占据的内存百分比排序
- T 键 以占据的累积CPU时长排序
- 信息显示
- 显示 uptime 信息:按 l 键
- 显示 tasks 及 cpu 信息:按 t 键
- 显示 memory 信息:按 m 键
- 退出命令 按 q 键
- 修改刷新时间间隔 按 s 键
- 终止指定进程 按 k 键
top常用选项
- top -d #
- 指定刷新时间间隔,默认为3秒
- top -b
- 以批次方式
- top -n #
- 显示多少批次
htop
htop常用选项
- htop -d #
- 指定延迟时间
- htop -u
- 仅显示指定用户的进程
- htop -s
- 以指定字段进行排序
htop常用命令
- 按 s 键:跟踪选定进程的系统调用
- 按 l 键:显示选定进程打开的文件列表
- 按 a 键:将选定的进程绑定至指定CPU核心
- 按 t 键:显示进程树
pmap
- pmap - 显示进程的内存映射
- 语法
- pmap [options] pid […]
- pmap -x pid
- 显示详细格式信息
- cat /proc//maps
kill
- kill 命令 向进程发送控制信号,以实现对进程管理
- 显示当前系统可用信号
- kill - l
- man 7 signal
[root@2w3i-Cs ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[root@2w3i-Cs ~]#
常用信号
- 1)SIGHUP:无须关闭进程而让其重读配置文件
- 2)SIGINT:中止正在运行的进程,相当于Ctrl+C
- 9)SIGKILL:杀死正在运行的进程
- 15)SINGTERM:终止正在运行的进程
- 18)SIGCONT:继续已暂停运行的进程
- 19)SIGSTOP:暂停正在运行的进程
指定信号的方法
- 信号的数字标识;1, 2, 9
- 信号完整名称;SIGHUP
- 信号的简写名称;HUP
向进程发信号
- kill [-SIGNAL] PID..
终止“名称”之下的所有进程
- killall [-SIGNAL] Program