查看进程
ps
- ps aux
查看所有进程,使用BSD操作系统格式
- ps -le
查看系统所有进程,使用Linux标准命令格式
参数
- a :显示一个终端的所有进程,
- u :显示进程的归属用户及内存的使用情况
- x :显示没有控制终端的进程
- -l :长格式显示。显示更加详细的信息
- -e :显示所有进程,和-A作用一致
输出:
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19348 1616 ? Ss Aug01 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S Aug01 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Aug01 0:00 [migration/0
root 4 0.0 0.0 0 0 ? S Aug01 0:00 [ksoftirqd/0
root 5 0.0 0.0 0 0 ? S Aug01 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S Aug01 0:00 [watchdog/0]
root 7 0.1 0.0 0 0 ? S Aug01 0:37 [events/0]
root 8 0.0 0.0 0 0 ? S Aug01 0:00 [events/0]
...
参数 | 含义 |
---|---|
USER | 该进程是由哪个用户产生的 |
PID | 进程的ID号 |
%CPU | 改进程占用的CPU资源的百分比,占用越高,进程越耗费资源 |
%MEM | 该进程占用的物理内存的百分比,占用越高,进程越耗费资源 |
VSZ | 该进程占用的虚拟内存大小,单位是KB |
RSS | 该进程占用的物理内存大小,单位是KB |
TTY | 该进程是在哪个终端中运行的。tty1-tty7表示本地控制台,pts/0-255表示虚拟终端 |
STAT | 进程状态。常见状态有 R:运行 S:睡眠 T:停止状态 s:包含子进程 +:位于后台 |
START | 该进程的启动时间 |
TIME | 该进程占用CPU的运算时间,不是系统时间 |
COMMAND | 产生此进程的命令名 |
pstree 命令
显示进程树
- -p:显示进程的PID
- -u:显示进程的所属用户
执行结果如下:
[root@localhost ~]# pstree -up
init(1)─┬─NetworkManager(1581)─┬─dhclient(3561)
│ └─{NetworkManager}(1645)
├─abrtd(1960)
├─acpid(1680)
├─atd(1987)
├─auditd(1462)───{auditd}(1463)
├─automount(1767)─┬─{automount}(1768)
│ ├─{automount}(1769)
│ ├─{automount}(1772)
│ └─{automount}(1775)
├─certmonger(2003)
├─console-kit-dae(2584)─┬─{console-kit-da}(2585)
│ ├─{console-kit-da}(2586)
│ ├─{console-kit-da}(2587)
│ ├─{console-kit-da}(2588)
│ ├─{console-kit-da}(2589)
│ ├─{console-kit-da}(2590)
│ ├─{console-kit-da}(2591)
│ ├─{console-kit-da}(2592)
├─crond(1972)
├─cupsd(1647)
├─dbus-daemon(1567,dbus)───{dbus-daemon}(1570)
├─hald(1692,haldaemon)─┬─hald-runner(1693,root)─┬─hald-addon-acpi(1738,haldaemon)
│ │ └─hald-addon-inpu(1737)
│ └─{hald}(1694)
├─login(3126)───bash(3166)
├─master(1931)─┬─pickup(21672,postfix)
│ └─qmgr(1942,postfix)
├─mingetty(2050)
├─mingetty(2052)
├─mingetty(2054)
├─mingetty(2056)
├─mingetty(2064)
├─modem-manager(1588)
├─polkitd(2720)
├─rpc.statd(1604,rpcuser)
├─rpcbind(1547,rpc)
├─rsyslogd(1496)─┬─{rsyslogd}(1497)
│ ├─{rsyslogd}(1498)
│ └─{rsyslogd}(1499)
├─sshd(1835)───sshd(21691)───bash(21695)───pstree(21739)
├─udevd(548)─┬─udevd(2062)
│ └─udevd(2063)
└─wpa_supplicant(1648)
top 命令
查看系统健康状态
参数
- -d: 秒数:指定top命令每隔几秒更新。默认3秒
- -b: 使用批处理模式输出,一般和 -
n合用
- -n: 次数:指定top命令执行的次数。一般和-b
合用
交互命令:
- ?或h:显示帮助信息
- P:以CPU使用率排序,默认是此选项
- M:以内存使用率排序
- N:以PID排序
- q:退出top
[root@localhost ~]# top
top - 02:42:13 up 9:01, 2 users, load average: 0.06, 0.04, 0.05
Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.4%sy, 0.0%ni, 99.0%id, 0.4%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 1004136k total, 824820k used, 179316k free, 39408k buffers
Swap: 2031612k total, 0k used, 2031612k free, 596492k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 2.0 0.0 0:39.59 events/0
1 root 20 0 19348 1616 1304 S 0.0 0.2 0:02.90 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.12 watchdog/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
16 root 20 0 0 0 0 S 0.0 0.0 0:00.27 sync_supers
17 root 20 0 0 0 0 S 0.0 0.0 0:00.25 bdi-default
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
第一行
内容 | 说明 |
---|---|
02:42:13 | 系统当前时间 |
up 9:01 | 系统的运行时间 |
2 users | 当前用户数 |
load average: 0.06, 0.04, 0.05 | 系统在之前1分钟、5分钟、15分钟的平均负载。 |
第二行
内容 | 说明 |
---|---|
Tasks: 97 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
96 sleeping | 睡眠的进程数 |
0 stopped | 正在停止的进程数 |
0 zombie | 僵尸进程 |
第三行
内容 | 说明 |
---|---|
Cpu(s): 0.2%us | 用户模式占用的CPU百分比 |
0.4%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.0%id | 空闲的CPU百分比 |
0.4%wa | 等该输入/输出的进程占用百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st(Steal time)虚拟时间百分比,就是当有虚拟机时,虚拟机CPU等待实际CPU的时间百分比 |
第四行
内容 | 说明 |
---|---|
Mem: 1004136k total | 物理内存的总量,单位KB |
824820k used | 已经使用的物理内存数量 |
179316k free | 空闲的物理内存数量 |
39408k buffers | 作为缓冲区的内存数量 |
第五行
内容 | 说明 |
---|---|
Swap: 2031612k total | 交换分区(虚拟内存)的总大小 |
824820k used | 已经使用的交换分区的大小 |
0k used | 已经使用的交换分区的大小 |
2031612k free | 空闲交换分区的大小 |
596492k cached | 作为环迅的交换分区的大小 |
终止进程
kill -l 命令
- kill -[信号] pid
根据进程id杀死单一进程
常见信号如下:
信号代码 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 平滑重启,关闭进程,重新读取配置文件后重启 |
9 | SIGNKILL | 进程法伤问题时,强制结束进程 |
15 | SIGTERM | 正常结束的金浩,kill命令的默认信号 |
杀死pid为14942的进程:
kill -1 14942
kill -HUP 14942
killall 命令
- killall [信号] [选项] 进程名
按照进程名杀死进程
选项:
- -i 交互式。询问是否要杀死某个进程
- -I 忽略进程名的大小写
杀死tomcat进程:
killall -9 -I java
pkill 命令
- pkill [信号] [选项] 进程名
按照进程名杀死进程
该命令的作用与killall类似,只是多出了一个按照终端号结束用户终端的功能
- -t 终端号: 按照终端号踢出用户。 只有root用户可以操作
w
命令查看当前用户。可知有一个本地终端和两个远程终端。WHAT表示该终端正在执行的命令。pts/1是当前终端的终端号。
[root@localhost bin]# w
17:10:02 up 50 min, 3 users, load average: 0.71, 0.21, 0.07
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 16:24 41:19 0.15s 0.15s -bash
twilight pts/0 192.168.226.1 16:27 42:17 0.08s 0.08s -bash
root pts/1 192.168.226.1 16:29 0.00s 0.33s 0.05s w
根据终端号杀死pts/0用户的终端:
pkill -9 -t pts/0
修改进程优先级
ps -le
可以查看所有进程的信息,其中包括进程的优先级。PRI表示priority,NI表示nice。两个都是有点急,数字越小代表优先级越高。
注意事项:
- NI的范围是-20 到 19
- 普通用户调整NI值得范围是0~19,而且只能调整自己的进程
- 普通用户只能调高NI值,而不能降低
- root用户才能设定进程NI值为负值,而且可以调整任何用户的进程
- PRI(最终值) = PRI(原始值) + NI
- 用户只能修改NI的值,不能直接修改PRI
nice 命令
- nice [选项] 命令
nice可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值。
选项:
- -n NI值: 给命令赋予NI值
例如:
nice -n -5 service httpd start
renice 命令
- renice [优先级] PID
修改已经存在的进程的NI值的命令
例如:
renice -10 2125