浅谈linux下进程查看,管理工具
1.pstree 显示进程树。
显示各个进程之间的关系
[root@test ~]# pstree init─┬─abrtd ├─acpid ├─atd ├─console-kit-dae───63*[{console-kit-da}] ├─crond ├─cupsd ├─dbus-daemon ├─dhclient ├─fcoemon ├─hald─┬─hald-runner─┬─hald-addon-acpi │ │ └─hald-addon-inpu │ └─{hald} ├─lldpad ├─login───bash ├─master─┬─pickup │ └─qmgr ├─5*[mingetty] ├─rpcbind ├─rsyslogd───3*[{rsyslogd}] ├─sshd─┬─sshd───2*[bash] │ └─sshd───bash───pstree └─udevd───2*[udevd]
2.ps 进程状态查看工具
ps aux
a 与终端相关的进程
x 与终端无关的进程
u 显示以用户为中心组织进程状态信息
[root@test ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND VSZ 虚拟内存集 RSS 常住内存集不能被交换 STAT 进程状态 R running S 可中断睡眠 D 不可中断睡眠 T 停止态 Z 僵尸态 + 前台进程 l 多线程进程 N 低优先级进程 < 高优先级进程 s session leader root 1584 0.0 0.1 251200 1692 ? Sl 18:37 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5 root 1614 0.0 0.0 18308 724 ? Ss 18:37 0:06 irqbalance --pid=/var/run/irqbalance.pid rpc 1630 0.0 0.0 18976 904 ? Ss 18:37 0:00 rpcbind dbus 1662 0.0 0.1 21712 1248 ? Ss 18:38 0:02 dbus-daemon --system root 1673 0.0 0.6 101196 6424 ? Ssl 18:38 0:01 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid root 1677 0.0 0.2 58136 2432 ? S 18:38 0:00 /usr/sbin/modem-manager rpcuser 1694 0.0 0.1 23348 1372 ? Ss 18:38 0:00 rpc.statd root 1726 0.0 0.3 189408 3780 ? Ss 18:38 0:00 cupsd -C /etc/cups/cupsd.conf root 1753 0.0 0.0 44988 688 ? Ss 18:38 0:00 /usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -B -u -f /var/log/w root 1791 0.0 0.0 4080 652 ? Ss 18:38 0:00 /usr/sbin/acpid 68 1801 0.0 0.5 39352 5584 ? Ssl 18:38 0:00 hald root 1802 0.0 0.1 20400 1180 ? S 18:38 0:00 hald-runner root 1847 0.0 0.1 22520 1088 ? S 18:38 0:00 hald-addon-input: Listening on /dev/input/event2 /dev/input/event0 68 1854 0.0 0.1 18008 1028 ? S 18:38 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket root 1875 0.0 0.1 386140 1924 ? Ssl 18:38 0:00 automount --pid-file /var/run/autofs.pid root 1904 0.0 0.1 66688 1272 ? Ss 18:38 0:00 /usr/sbin/sshd root 2018 0.0 0.3 81328 3848 ? Ss 18:38 0:00 /usr/libexec/postfix/master postfix 2039 0.0 0.3 81592 3868 ? S 18:38 0:00 qmgr -l -t fifo -u root 2045 0.0 0.1 114644 1124 ? Ss 18:38 0:00 /usr/sbin/abrtd root 2057 0.0 0.1 117336 1272 ? Ss 18:38 0:00 crond root 2071 0.0 0.0 21576 516 ? Ss 18:38 0:00 /usr/sbin/atd root 2097 0.0 0.2 79520 2980 ? Ss 18:38 0:00 login -- root root 2099 0.0 0.0 4064 540 tty2 Ss+ 18:38 0:00 /sbin/mingetty /dev/tty2 root 2101 0.0 0.0 4064 540 tty3 Ss+ 18:38 0:00 /sbin/mingetty /dev/tty3 root 2103 0.0 0.0 4064 540 tty4 Ss+ 18:38 0:00 /sbin/mingetty /dev/tty4 root 2105 0.0 0.0 4064 540 tty5 Ss+ 18:38 0:00 /sbin/mingetty /dev/tty5 root 2107 0.0 0.0 4064 540 tty6 Ss+ 18:38 0:00 /sbin/mingetty /dev/tty6 root 2113 0.0 0.3 2085036 3428 ? Sl 18:38 0:00 /usr/sbin/console-kit-daemon --no-daemon root 2180 0.0 0.1 108336 1792 tty1 Ss+ 18:38 0:00 -bash root 2859 0.0 0.4 52772 4440 ? S 19:47 0:01 /usr/libexec/polkit-1/polkitd root 3314 0.0 0.0 10824 880 ? S< 19:51 0:00 /sbin/udevd -d root 3315 0.0 0.0 10824 880 ? S< 19:51 0:00 /sbin/udevd -d postfix 3597 0.0 0.3 81408 3820 ? S 21:58 0:00 pickup -l -t fifo -u named 5494 0.1 1.5 385320 15576 ? Ssl 23:04 0:02 /usr/sbin/named -u named root 5511 0.0 0.4 100448 4424 ? Ss 23:04 0:00 sshd: root@pts/0 root 5515 0.0 0.1 108340 1772 pts/0 Ss+ 23:04 0:00 -bash root 5983 0.2 0.1 9120 1564 ? S 23:19 0:00 /sbin/dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0. root 6148 0.4 0.4 100448 4440 ? Rs 23:19 0:00 sshd: root@pts/1 root 6151 0.1 0.1 108340 1772 pts/1 Ss 23:19 0:00 -bash root 6181 2.0 0.1 110236 1124 pts/1 R+ 23:21 0:00 ps aux
ps -ef
e 显示所有进程
f 显示完整格式进程
[root@test ~]# ps -ef rpc 1630 1 0 18:37 ? 00:00:00 rpcbind dbus 1662 1 0 18:38 ? 00:00:02 dbus-daemon --system root 1673 1 0 18:38 ? 00:00:01 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid root 1677 1 0 18:38 ? 00:00:00 /usr/sbin/modem-manager rpcuser 1694 1 0 18:38 ? 00:00:00 rpc.statd root 1726 1 0 18:38 ? 00:00:00 cupsd -C /etc/cups/cupsd.conf root 1753 1 0 18:38 ? 00:00:00 /usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -B -u -f /var/log/wpa_supplicant.lo root 1791 1 0 18:38 ? 00:00:00 /usr/sbin/acpid 68 1801 1 0 18:38 ? 00:00:00 hald root 1802 1801 0 18:38 ? 00:00:00 hald-runner root 1847 1802 0 18:38 ? 00:00:00 hald-addon-input: Listening on /dev/input/event2 /dev/input/event0 68 1854 1802 0 18:38 ? 00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket root 1875 1 0 18:38 ? 00:00:00 automount --pid-file /var/run/autofs.pid root 1904 1 0 18:38 ? 00:00:00 /usr/sbin/sshd root 2018 1 0 18:38 ? 00:00:00 /usr/libexec/postfix/master postfix 2039 2018 0 18:38 ? 00:00:00 qmgr -l -t fifo -u root 2045 1 0 18:38 ? 00:00:00 /usr/sbin/abrtd root 2057 1 0 18:38 ? 00:00:00 crond root 2071 1 0 18:38 ? 00:00:00 /usr/sbin/atd root 2097 1 0 18:38 ? 00:00:00 login -- root root 2099 1 0 18:38 tty2 00:00:00 /sbin/mingetty /dev/tty2 root 2101 1 0 18:38 tty3 00:00:00 /sbin/mingetty /dev/tty3 root 2103 1 0 18:38 tty4 00:00:00 /sbin/mingetty /dev/tty4 root 2105 1 0 18:38 tty5 00:00:00 /sbin/mingetty /dev/tty5 root 2107 1 0 18:38 tty6 00:00:00 /sbin/mingetty /dev/tty6 root 2113 1 0 18:38 ? 00:00:00 /usr/sbin/console-kit-daemon --no-daemon root 2180 2097 0 18:38 tty1 00:00:00 -bash root 2859 1 0 19:47 ? 00:00:01 /usr/libexec/polkit-1/polkitd root 3314 497 0 19:51 ? 00:00:00 /sbin/udevd -d root 3315 497 0 19:51 ? 00:00:00 /sbin/udevd -d postfix 3597 2018 0 21:58 ? 00:00:00 pickup -l -t fifo -u named 5494 1 0 23:04 ? 00:00:02 /usr/sbin/named -u named root 5511 1904 0 23:04 ? 00:00:00 sshd: root@pts/0 root 5515 5511 0 23:04 pts/0 00:00:00 -bash root 5983 1673 0 23:19 ? 00:00:00 /sbin/dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid -lf /var/lib root 6148 1904 0 23:19 ? 00:00:00 sshd: root@pts/1 root 6151 6148 0 23:19 pts/1 00:00:00 -bash root 6178 6151 35 23:20 pts/1 00:00:00 ps -ef [root@test ~]#
注意:Linux系统各进程的相关信息均保存在/pro/PID目录下的各文件中
3.top
排序 按P:以占据CPU百分比
按M:以占据内存百分比
按T:累计占据CPU时长
[root@test ~]# top top - 23:20:16 up 4:42, 3 users, load average: 0.06, 0.03, 0.00 Tasks: 165 total, 1 running, 164 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1004352k total, 409576k used, 594776k free, 53076k buffers Swap: 2097148k total, 0k used, 2097148k free, 197528k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6177 root 20 0 15036 1264 928 R 0.7 0.1 0:00.07 top 1 root 20 0 19364 1536 1224 S 0.0 0.2 0:01.48 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.02 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.02 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.04 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.59 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:00.04 watchdog/1 11 root RT 0 0 0 0 S 0.0 0.0 0:00.05 migration/2 12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/2 13 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/2 14 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/2 15 root RT 0 0 0 0 S 0.0 0.0 0:00.04 migration/3 16 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/3 17 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/3 18 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/3 19 root 20 0 0 0 0 S 0.0 0.0 0:01.20 events/0 20 root 20 0 0 0 0 S 0.0 0.0 0:02.16 events/1 21 root 20 0 0 0 0 S 0.0 0.0 0:16.68 events/2 22 root 20 0 0 0 0 S 0.0 0.0 0:12.25 events/3 23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup 24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 28 root 20 0 0 0 0 S 0.0 0.0 0:00.14 sync_supers 29 root 20 0 0 0 0 S 0.0 0.0 0:00.14 bdi-default 30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0 31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/1 32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/2
4.vmstat
[root@test ~]# vmstat 2 10 #每2秒刷新一次,一共刷新10次 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st r:等待运行进程的个数 b:处于不可中断睡眠态的进程个数(被阻塞的队列长度) si 数据进入swap中的数据速率kb/s so 数据离开swap中的数据速率kb/s bi 从块设备读入数据速率 bo 从块设备输出数据速率 in 中断速率 cs 每秒上下文切换次数 us 用户空间占据比例 sy 内核空间占据的比例 id 空闲 wa 等待io完成 1 0 0 1486576 80572 344080 0 0 1 1 6 5 0 0 100 0 0 0 0 0 1486568 80572 344080 0 0 0 0 34 18 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 6 28 27 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 0 22 19 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 2 29 28 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 0 23 14 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 2 27 26 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 0 22 16 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 0 26 24 0 0 100 0 0 0 0 0 1486568 80580 344080 0 0 0 0 24 18 0 0 100 0 0
5.glances
-h 查看帮助
-b 以byte为单位显示
-d 关闭磁盘I/O模块
-f /path/to/file 设定输入文件位置
-o {html|csv} 输出格式
-m 禁用mount模块
-n 禁用网络模块
C/S模式下运行glances
服务器模式 glances -s -B IPADDR 监听在本机的地址
客户端模式 glances -c IPADDR 服务器的地址
-c: 显示cpu相关信息;
-C #,#,..|total 显示具体某个核心信息
-d: 只显示disk相关信息;
-D /device|total 显示固定设备的I/O或者所有
-g:显示page相关统计数据;
-m: 显示memory相关统计数据;
-n: 显示network相关统计数据;
-p: 显示process相关统计数据;
-r: 显示io请求相关的统计数据;
-s: 显示swapped相关的统计数据;
--top-cpu:显示最占用CPU的进程;
--top-io: 显示最占用io的进程;
--top-mem: 显示最占用内存的进程;
--top-lantency: 显示延迟最大的进程;
[root@test-3 ~]# dstat ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 0 0 100 0 0 0| 13k 6108B| 0 0 | 0 0 | 29 26 0 0 100 0 0 0| 0 0 | 60B 826B| 0 0 | 21 17 0 0 99 0 0 0| 0 108k| 60B 346B| 0 0 | 31 28 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 29 24 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 39 40 0 0 100 0 0 0| 0 0 | 150B 400B| 0 0 | 21 21 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 22 19 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 24 22 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 21 19 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 18 19 0 0 100 0 0 0| 0 0 | 120B 346B| 0 0 | 26 26 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 18 17 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 25 21 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 26 22 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 25 22 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 21 20 0 0 100 0 0 0| 0 0 | 120B 388B| 0 0 | 29 28 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 17 21 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 24 21 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 19 19 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 20 18 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 15 17 0 0 100 0 0 0| 0 0 | 106B 400B| 0 0 | 27 24 0 0 99 0 0 0| 0 0 | 60B 346B| 0 0 | 26 23 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 22 20 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 19 21 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 20 17 0 0 100 0 0 0| 0 136k| 60B 346B| 0 0 | 20 25 0 0 100 0 0 0| 0 0 | 60B 346B| 0 0 | 25 29
进程管理命令
kill命令 向进程发送控制信号,以实现对进程管理
显示当前系统可用信号 kill -l
常用信号
1.SIGHUP 不关闭进程而重读配置文件
2.SIGINT 终止正在运行的进程 相当于ctrl+c
9.SIGKILL 杀死正在运行的进程
15.SIGTERM 终止正在运行的进程
18.SIGCONT 终止停止态
19.SIGSTOP 处于停止态
指定信号的方法
1.信号的数字标识 1,2,9
2.信号的完整名称 SIGHUP
3.信号的简写名称 HUP
向进程发信号
kill [-SIGNAL] PID
终止“名称”之下的所有进程
killall [-SIGNAL] program
Linux的作业控制 jobs
前台作业:通过终端启动,且启动后一直占据终端
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)
让作业在后台运行
1.运行中的作业 ctrl+z
2.尚未启动的作业 command &
注意:此类作业虽然被送往后台运行,但是其依然与终端相关,终端断开,进程结束。如果希望送往后台后,剥离与终端的关系 nohup command &
查看所有作业:jobs
作业控制
fg [%#] 把指定后台作业调回前台
bg [%#] 让送往后台的作业在后台继续运行
kill [#] 终止作业
进程优先级:
静态优先级 100-139
进程默认启动时的nice值为0,优先级为120
renice -n 2 pid 把优先级增加到2
查看nice值 ps axo pid,comm,ni
sar tstar iostat iftop