Linux进程管理

目录

进程管理

进程管理的作用

查看进程

静态查看进程

查看系统中所有的进程

参数

分析输出结果

动态查看进程

命令

参数

查看系统健康状态

在top命令的交互模式当中可以执行的命令

top命令输出的前五行结果

查看进程树

终止进程

kill命令

常用信号说明

killall命令

pkill命令


进程管理

进程就是与运行中的程序

进程管理的作用

  1. 判断服务器健康状态

  2. 查看系统中所有的进程

  3. “杀死”进程

查看进程

静态查看进程

查看系统中所有的进程
[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 stst(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的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。

常用信号说明

信号代号信号名称说明
1SIGHUP该信号让进程立即关闭,然后重新读取配置文件之后重启
2SIGINT程序终止信号,用户终止前台进程。相当于输出ctrl+c快捷键
9SIGKILL用来立即结束程序的运行,本信号不能被阻塞、忽略。一般 用于强制终止进程
15SIGTERM正在结束进程的信号,kill命令的默认信号。有时如果进程已 经发生问题,这个信号是无法正常终止进程的,我们这时才 回尝试SIGKILL信号,也就是信号9
18SIGCONT信号可以让暂停的进程恢复执行,本信号不能把阻断
19SIGSTOP该信号可以暂停前台进程,相当于输出crtl+z。本信号不能 被阻断

killall命令

 killall [选项] [信号] 进程名 

按照进程名杀死进程

  • 参数

    • -i:回询问是否要杀死某个进程

    • -l:会忽略进程名的大小写

pkill命令

 pkill [选项] [信号] 进程名 

按照进程名沙溪进程

  • 参数

    • -t + 终端号:按照终端号踢出用户

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值