目录
进程管理
进程就是与运行中的程序
进程管理的作用
-
判断服务器健康状态
-
查看系统中所有的进程
-
“杀死”进程
查看进程
静态查看进程
查看系统中所有的进程
[root@bogon ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.8 106248 15924 ? Ss 21:29 0:01 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root 2 0.0 0.0 0 0 ? S 21:29 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 21:29 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 21:29 0:00 [rcu_par_gp]
...
[root@bogon ~]# ps -el
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 26562 ep_pol ? 00:00:01 systemd
1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:00 kthreadd
1 I 0 3 2 0 60 -20 - 0 rescue ? 00:00:00 rcu_gp
...
[root@bogon ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 21:29 ? 00:00:01 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root 2 0 0 21:29 ? 00:00:00 [kthreadd]
root 3 2 0 21:29 ? 00:00:00 [rcu_gp]
root 4 2 0 21:29 ? 00:00:00 [rcu_par_gp]
root 6 2 0 21:29 ? 00:00:00 [kworker/0:0H-events_highpri]
...
可以通过管道符进行筛选
参数
-
a:表示显示所有前台进程
-
x:表示显示所有的后台进程
-
u:表示显示进程是由那个用户产生的
-
l:表示显示更详细的信息
-
e:表示显示所有进程
分析输出结果
-
USER:该进程是由哪个用户产生的
-
PID:进程的ID号
-
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
-
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
-
VSZ:该进程占用虚拟内存的大小,单位KB
-
RSS:该进程占用实际物理内存的大小,单位KB
-
TTY:该进程是在哪个终端中运行的。其中TTY1-TTY6代表本地控制台终端。TTY2-6是本地的字符界面终端,TTY1是图形终端。PTS/0-255代表虚拟终端。如果是”?”,则表示该进程是由内核直接产生,而不是任何的终端产生
-
STAT:进程状态。常见的状态有R:运行、S,睡眠、T,停止、s,包含子进程、+,位于后台
-
START:该进程的启动时间
-
TIME:该进程占用CPU的运算时间,注意不是系统时间
-
COMMAND:产生此进程的命令名
动态查看进程
命令
[root@bogon ~]# top -d 2
top - 22:13:56 up 44 min, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 294 total, 1 running, 293 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
MiB Mem : 1748.7 total, 228.6 free, 953.2 used, 566.8 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 624.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2374 root 20 0 378968 61856 27908 S 0.5 3.5 0:00.87 rhsm-service
1 root 20 0 106248 15924 10368 S 0.0 0.9 0:01.21 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
...
参数
-
-d:表示秒数,指定top命令每隔几秒更新,默认是三秒
查看系统健康状态
在top命令的交互模式当中可以执行的命令
-
?或h:显示交互模式的帮助
-
P:以CPU使用率排序,默认就是此项
-
M:以内存的使用率排序
-
N:以PID排序
-
q:退出top
top命令输出的前五行结果
第一行
内容 | 说明 |
---|---|
22:13:56 | 系统当前时间 |
up 44 min | 系统运行时间 |
3 users | 当前登录用户的个数 |
load average: 0.00, 0.00, 0.00 | 系统再之前1分钟、五分钟、15分钟的平均负载,一般 认为小于1时负载较小,如果大于1,系统已经超出负载 |
第二行信息
内容 | 说明 |
---|---|
Tasks: 294 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
293 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程 |
第三行信息是cpu信息
内容 | 说明 |
---|---|
0.0 us | 用户模式占用的CPU百分比 |
0.0 sy | 系统模式占用的CPU百分比 |
0.0 ni | 改变过优先级的用户进程占用百分比 |
100.0 id | 空闲CPU的CPU百分比 |
0.0 wa | 等待输入/ 输出的进程占用CPU百分比 |
0.0 hi | 硬件中断请求服务占用的CPU百分比 |
0.0 si | 软中断请求服务占用的CPU百分比 |
0.0 st | st(steal time)虚拟时间百分比,就是当有虚拟机时 ,虚拟CPU等待时机的时间百分比 |
第四行是物理内存信息
内容 | 说明 |
---|---|
MiB Mem : 1748.7 total | 物理内存的总量,单位KB |
953.2 used | 经使用的物理内存数量 |
228.6 free | 闲的物理内存数量 |
566.8 buff/cache | 作为缓冲的内存数量 |
第五行是交换分区(swap)信息
内容 | 说明 |
---|---|
Swap: 2048.0 total | 交换分区(虚拟内存)的总大小 |
0.0 used | 已经使用的交互式分区的大小 |
2048.0 free | 空闲交换分区的大小 |
624.8 avail Mem |
查看进程树
能够非常明显的看出父进程与子进程之间的关系
[root@bogon ~]# pstree
systemd─┬─ModemManager───3*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─accounts-daemon───3*[{accounts-daemon}]
├─alsactl
├─atd
├─auditd─┬─sedispatch
│ └─2*[{auditd}]
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─chronyd
├─colord───3*[{colord}]
├─crond
├─cupsd
├─dbus-broker-lau───dbus-broker
├─firewalld───{firewalld}
├─gdm─┬─gdm-session-wor─┬─gdm-wayland-ses─┬─gnome-session-b───3*[{gnome-session-b}]
│ │ │ └─2*[{gdm-wayland-ses}]
│ │ └─2*[{gdm-session-wor}]
│ └─2*[{gdm}]
├─gnome-keyring-d───3*[{gnome-keyring-d}]
├─irqbalance───{irqbalance}
├─lsmd
├─mcelog
├─packagekitd───2*[{packagekitd}]
├─polkitd───5*[{polkitd}]
├─power-profiles-───2*[{power-profiles-}]
├─rhsm-service───{rhsm-service}
├─rhsmcertd
├─rsyslogd───2*[{rsyslogd}]
├─rtkit-daemon───2*[{rtkit-daemon}]
├─sshd───sshd───sshd───bash───pstree
├─sssd_kcm
├─switcheroo-cont───2*[{switcheroo-cont}]
├─systemd─┬─(sd-pam)
│ ├─at-spi-bus-laun─┬─dbus-broker-lau───dbus-broker
│ │ └─3*[{at-spi-bus-laun}]
│ ├─at-spi2-registr───2*[{at-spi2-registr}]
│ ├─dbus-broker-lau───dbus-broker
│ ├─dconf-service───2*[{dconf-service}]
│ ├─evolution-addre───5*[{evolution-addre}]
│ ├─evolution-calen───8*[{evolution-calen}]
│ ├─evolution-sourc───3*[{evolution-sourc}]
│ ├─2*[gjs───4*[{gjs}]]
│ ├─gnome-session-b─┬─evolution-alarm───5*[{evolution-alarm}]
│ │ ├─gnome-software───3*[{gnome-software}]
│ │ ├─gsd-disk-utilit───2*[{gsd-disk-utilit}]
│ │ └─3*[{gnome-session-b}]
│ ├─gnome-session-c───{gnome-session-c}
│ ├─gnome-shell─┬─Xwayland
│ │ ├─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}]
│ │ │ ├─ibus-engine-sim───2*[{ibus-engine-sim}]
│ │ │ ├─ibus-extension-───3*[{ibus-extension-}]
│ │ │ └─2*[{ibus-daemon}]
│ │ └─13*[{gnome-shell}]
│ ├─gnome-shell-cal───5*[{gnome-shell-cal}]
│ ├─goa-daemon───3*[{goa-daemon}]
│ ├─goa-identity-se───3*[{goa-identity-se}]
│ ├─gsd-a11y-settin───3*[{gsd-a11y-settin}]
│ ├─gsd-color───3*[{gsd-color}]
│ ├─gsd-datetime───3*[{gsd-datetime}]
│ ├─gsd-housekeepin───3*[{gsd-housekeepin}]
│ ├─gsd-keyboard───3*[{gsd-keyboard}]
│ ├─gsd-media-keys───3*[{gsd-media-keys}]
│ ├─gsd-power───3*[{gsd-power}]
│ ├─gsd-print-notif───2*[{gsd-print-notif}]
│ ├─gsd-printer───2*[{gsd-printer}]
│ ├─gsd-rfkill───2*[{gsd-rfkill}]
│ ├─gsd-screensaver───2*[{gsd-screensaver}]
│ ├─gsd-sharing───3*[{gsd-sharing}]
│ ├─gsd-smartcard───5*[{gsd-smartcard}]
│ ├─gsd-sound───3*[{gsd-sound}]
│ ├─gsd-subman───3*[{gsd-subman}]
│ ├─gsd-usb-protect───3*[{gsd-usb-protect}]
│ ├─gsd-wacom───3*[{gsd-wacom}]
│ ├─gsd-xsettings───3*[{gsd-xsettings}]
│ ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
│ ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
│ ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
│ ├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}]
│ ├─gvfsd───2*[{gvfsd}]
│ ├─gvfsd-fuse───5*[{gvfsd-fuse}]
│ ├─gvfsd-metadata───2*[{gvfsd-metadata}]
│ ├─ibus-portal───2*[{ibus-portal}]
│ ├─ibus-x11───2*[{ibus-x11}]
│ ├─vmtoolsd───3*[{vmtoolsd}]
│ └─xdg-permission-───2*[{xdg-permission-}]
├─systemd-hostnam
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─udisksd───4*[{udisksd}]
├─upowerd───2*[{upowerd}]
├─vmtoolsd───3*[{vmtoolsd}]
├─vmware-vmblock-───2*[{vmware-vmblock-}]
└─wpa_supplicant
[root@bogon ~]#
参数:
-
-p:将子进程展开
终止进程
kill命令
[root@bogon ~]# 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
列表中,编号为1~31的信号为传统UNIX支持的信号,是不可信号(非实时的)编号为32~63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。
常用信号说明
信号代号 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 该信号让进程立即关闭,然后重新读取配置文件之后重启 |
2 | SIGINT | 程序终止信号,用户终止前台进程。相当于输出ctrl+c快捷键 |
9 | SIGKILL | 用来立即结束程序的运行,本信号不能被阻塞、忽略。一般 用于强制终止进程 |
15 | SIGTERM | 正在结束进程的信号,kill命令的默认信号。有时如果进程已 经发生问题,这个信号是无法正常终止进程的,我们这时才 回尝试SIGKILL信号,也就是信号9 |
18 | SIGCONT | 信号可以让暂停的进程恢复执行,本信号不能把阻断 |
19 | SIGSTOP | 该信号可以暂停前台进程,相当于输出crtl+z。本信号不能 被阻断 |
killall命令
killall [选项] [信号] 进程名
按照进程名杀死进程
-
参数
-
-i:回询问是否要杀死某个进程
-
-l:会忽略进程名的大小写
-
pkill命令
pkill [选项] [信号] 进程名
按照进程名沙溪进程
-
参数
-
-t + 终端号:按照终端号踢出用户
-