Linux进程管理

一.进程概念

  进程就是系统未完成并且正在进行的工作

二.查看进程

【1】图形方式查看:gnome-system-monitor

【2】命令方式:ps

  • 参数:-A  表示所有进程     -a   表示在当前环境中运行的进程,不包含环境信息

      -u   显示进程用户信息  a   在当前环境中运行的进程  x   列出系统中所有运行包含tty输出设

      f    显示进程的父子关系  e  显示进程的详细信息(系统资源的调用)

显示部分结果如下:

 示例:显示进程所有信息(只显示了部分截图)

[root@localhost mnt]# ps -A
  PID TTY          TIME CMD
    1 ?        00:00:03 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 kworker/0:0H
    7 ?        00:00:00 migration/0
    8 ?        00:00:00 rcu_bh
    9 ?        00:00:00 rcuob/0
   10 ?        00:00:01 rcu_sched
   11 ?        00:00:01 rcuos/0
   12 ?        00:00:00 watchdog/0
   13 ?        00:00:00 khelper
   14 ?        00:00:00 kdevtmpfs

 示例:显示当前环境中运行的进程,没有进程的环境信息

[root@localhost mnt]# ps -a
  PID TTY          TIME CMD
 7873 pts/0    00:00:00 ps

示例:显示当前进程的所属关系

[root@localhost mnt]# ps f
  PID TTY      STAT   TIME COMMAND
 2180 pts/0    Ss     0:01 -bash
 7912 pts/0    R+     0:00  \_ ps f
  590 tty1     Ss+    0:56 /usr/bin/Xorg :0 -background none -verbose -auth /run
 1210 ttyS0    Ss+    0:00 /sbin/agetty --keep-baud ttyS0 115200 38400 9600
  • ps常用组合:

      ps aux      ##显示系统中所有进程并显示进程用户
      ps ef       ##显示进程详细信息并显示进程父子关系
      ps ax      ##显示当前系统中的所有进程

[root@localhost mnt]# ps ef
  PID TTY      STAT   TIME COMMAND
 2180 pts/0    Ss     0:01 -bash XMODIFIERS=@im=ibus LANG=en_US.UTF-8 USER=root
 7947 pts/0    R+     0:00  \_ ps ef XDG_SESSION_ID=2 HOSTNAME=localhost TERM=x
  590 tty1     Ss+    0:56 /usr/bin/Xorg :0 -background none -verbose -auth /ru
 1210 ttyS0    Ss+    0:00 /sbin/agetty --keep-baud ttyS0 115200 38400 9600 PAT
  • 显示进程指定信息:ps -o xxx 

  参数: comm     ##进程名称

      user       ##进程所有人

      group    ##进程所有组

      %cpu ##进程cpu使用率

      %mem ##进程内存使用率

      pid ##进程id

       nice ##进程优先级

[root@localhost mnt]# ps -o %cpu,%mem,pid,user,group,nice,comm
%CPU %MEM   PID USER     GROUP     NI COMMAND
 0.0  0.3  2180 root     root       0 bash
 0.0  0.1  7965 root     root       0 ps
  • 进程排序 :--sort=

    ps ax --sort=+%cpu|-%cpu    ##表示对cpu的使用率进行排序(+有小到大;-由大到小)
    ps ax --sort=+%mem|-%mem   ## 对内存的占用大小排序

[root@localhost mnt]# ps ax --sort=-%mem -o %mem,user,uid,comm
%MEM USER       UID COMMAND
16.1 root         0 gnome-shell
 3.4 root         0 Xorg
 2.5 root         0 nautilus
 2.3 root         0 gnome-settings-
 2.1 root         0 firewalld
 1.9 root         0 goa-daemon
 1.8 root         0 tuned
 1.6 polkitd    999 polkitd
  • stat中显示的信息 :

   S   ##进程状态    l   ##内存中有锁定空间
   N  ##优先级低     <   ##优先级高
   +   ##前台运行    s   ##顶级进程

三.进程优先级
【1】进程的优先级范围:-20~19
【2】优先级查看:ps ax -o pid,nice,comm 

[root@localhost mnt]# ps a -o pid,nice,comm
  PID  NI COMMAND
  590   0 Xorg
 1210   0 agetty
 2180   0 bash
 8053   0 ps
【3】指定某个优先级开启进程

   nice -n  优先级数字 进程名称
 示例:开启vim并且指定程序优先级为-5

[root@localhost mnt]# nice -n -5 vim &
[1] 8056
[root@localhost mnt]# ps a -o pid,nice,comm
  PID  NI COMMAND
  590   0 Xorg
 1210   0 agetty
 2180   0 bash
 8056  -5 vim
 8065   0 ps
[1]+  Stopped                 nice -n -5 vim

【4】改变进程优先级
  renice -n 优先级数字 进程pid
 示例:改变1806进程的优先级为-5

 8056  -5 vim
 8065   0 ps 
[root@localhost mnt]# renice -n -20 8056
8056 (process ID) old priority -5, new priority -2
四.环境中进程的前后台调用

  jobs         ##查看被打入环境后台的进程
  ctrl+z       ##把占用终端的进程打入后台
  fg jobsnum       ##把后台进程调回前台
  bg jobsnum      ##把后台暂停的进程运行
  comm &      ##让命令直接在后台运行

五.进程信号

【1】常用信号等级
    1      ##进程重新加载配置
    2      ##删除进程在内存中的数据
    3      ##删除鼠标在内存中的数据
    9      ##强行结束单个进程(不能被阻塞)
    15       ##正常关闭进程 (可能会被阻塞)
    18       ##运行暂停的进程
    19         ##暂停某个进程 (不能被阻塞)
    20       ##把进程打入后台 (可以被阻塞)
    man 7 signal ##查看信号详细信息

【2】kill的使用

 kill -信号 进程pid
 killall -信号 进程名字
 pkill -u student -信号

  

6.用户登记审查

 w      查看当前使用系统的用户有哪些 

 w  -f 查看使用地点

 last  查看用户登录成功历史

[root@localhost mnt]# w
 11:14:08 up  2:58,  2 users,  load average: 0.02, 0.02, 0.05
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0        08:17   ?xdm?   8:12   0.11s gdm-session-worker [pam/gdm-
root     pts/0     08:39    0.00s  1.96s  0.00s w

 

[root@localhost mnt]# w -f
 11:15:15 up  2:59,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               08:17   ?xdm?   8:12   0.11s gdm-session-
root     pts/0    172.25.254.77    08:39    3.00s  1.96s  0.00s w -f

 

[root@localhost mnt]# last
root     pts/3        172.25.254.77    Wed Jul 25 09:54 - 09:59  (00:04)    
root     pts/2        :0               Wed Jul 25 09:34 - 09:58  (00:24)    
root     pts/1        :0               Wed Jul 25 08:39 - 09:58  (01:18)    
root     pts/0        172.25.254.77    Wed Jul 25 08:39   still logged in   
root     :0           :0               Wed Jul 25 08:17   still logged in   
(unknown :0           :0               Wed Jul 25 08:16 - 08:17  (00:00)    
reboot   system boot  3.10.0-123.el7.x Wed Jul 25 08:16 - 11:15  (02:59)    
root     pts/2        172.25.254.77    Tue Jul 24 22:40 - 22:54  (00:13)    
root     pts/1        :0               Tue Jul 24 21:09 - crash  (11:06)    
root     pts/0        :0               Tue Jul 24 20:01 - crash  (12:14)    
root     :0           :0               Tue Jul 24 20:01 - crash  (12:15)

7.进程的动态监控
【1】命令:top
    1.     ##显示cpu每个核的负载
    s     ##调整刷新频率
    c     ##CPU负载排序
    m     ##内存使用量排序
    h     ##查看帮助
    u     ##查看指定用户进程
    k     ##对指定进程发起信号
    q     ##退出

[root@localhost mnt]# top

top - 11:16:24 up  3:00,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 146 total,   2 running, 143 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0
KiB Mem:    969416 total,   833532 used,   135884 free,      884 buffers
KiB Swap:        0 total,        0 used,        0 free.   369560 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND  
 8148 root      20   0  123632   1556   1096 R  0.3  0.2   0:00.02 top      
    1 root      20   0   50468   3984   2208 S  0.0  0.4   0:03.37 systemd  
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.04 ksoftirq+
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/+
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migratio+
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh   
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0  
   10 root      20   0       0      0      0 S  0.0  0.0   0:01.21 rcu_sched
   11 root      20   0       0      0      0 R  0.0  0.0   0:02.01 rcuos/0  
   12 root      rt   0       0      0      0 S  0.0  0.0   0:00.17 watchdog+
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 khelper  
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns    
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegri+

 

posted @ 2018-07-25 19:25  UTHN_B  阅读(1018)  评论(0编辑  收藏  举报