Linux进程管理常用命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38863413/article/details/89637625

概述

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

进程管理常用命令

进程的查看 ps 和 pstree命令

  • ps aux

    查看系统中 所有进程,使用BSD操作系统格式

  • ps -le

    查看系统中 所有进程,使用Linux标准命令格式

  • 选项

    • a:显示一个终端的所有进程,除了会话引线
    • u:显示进程的归属用户和内存使用情况
    • x:显示没有控制终端的进程
    • -l:长格式显示,显示更加详细的信息
    • -e:显示所有的进程,和-a的作用一样

ps命令输出格式

  • user:该进程是由那个用户产生的

  • PID:该进程的ID号码

  • CPU:该进程占用 cpu资源的百分比,占用越高表示进程越耗费资源

  • MEM:该进程占用物理内存的百分比,占用越高,进程越耗费 资源

  • VSZ:该进程占用虚拟内存的大小,单位kb

  • RSS:该进程占用实际物理内存的大小,单位kb

  • TTY:该进程是在哪个终端运行的,其中tty1–tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形界面终端,pts/0-255代表虚拟终端。

  • STAT:进程的状态,常见的状态有:

    • R:运行状态

    • S:睡眠状态

    • T:停止状态

    • s:包含子进程

    • +:位于后台

  • START:该进程的启动时间

  • TIME:该进程占用和cpu的运算时间,注意不是系统的时间

  • COMMAND:产生此进程的命令名称

top 命令使用

  • 用法:top [选项]

  • 选项:

    • -d:秒数,指定top命令每隔几秒今次那个更新,默认是3秒

    • -b:使用批处理模式输出,一般和 -n 选项合用

    • -n:次数,指定top命令的执行的次数,一般和 -b选项合用

  • 在top命令的交互模式下可以执行的命令:

    • ?或者h:显示交互模式的帮助

    • P:以CPU使用率进行排序

    • M:以内存使用率进行排序

    • N:以PID排序

    • q:退出top进程

  • 使用top不可以查看所有的进程信息,只可以查看根据某种排序最高的几个进程,但是可以使用 top -b -n 1> top.log 来写入到一个文本中来进行查看。

进程的终止

kill命令

  • kill -l

    查看可用的进程信号,输出有64个:

     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 SIGHUP 让进程立即关闭,然后重新读取配置文件之后重启
    2 SIGINT 程序终止信号,用于终止前台进程,相当于输出ctrl+c快捷键
    8 SIGFPE 在发生致命的算你输运算错误的时候发出,包括浮点运算错误,还包括移除以及除数为零等其它所有的算数错误
    9 SIGKILL 用来立即结束程序的运行,信号币可以被阻塞,处理和忽略,一般用于强制终止进程。
    14 SIGLRM 时钟定时信号,计算的是实际的时间或时钟时间,alarm函数使用该信号
    15 SIGTERM 正常结束进程的信号,kill命令的默认信号,有时如果进程已经发生问题,这个信号是无法正常终止进程的,此时应该尝试信号SINKILL,也就是信号9
    18 SIGCONT 该信号可以让暂停的进程恢复执行,本信号不可以被阻断
    19 SIGSTOP 该信号可以暂停前台进程,相当于ctrl+z快捷键,本信号不可以被阻断
  • 用法:

    kill [选项] [信号] PID
    
  • 举例子

    kill -1 PID 或者 kill -HUP PID 表示平滑重启,重新加载配置文件,但是已经登录的用户不会受到影响,比如一个网站后台,运行该命令让服务器加载新的配置文件,但是不会给已经登录的用户造成无法访问的问题,对于外界用户来说透明。后面的PID表示进程id,kill 命令只可以杀死一个单一的进程,如果要杀死的进程太多,显然一个一个杀是不切实际的。

killall 命令

  • 用法

    killall [选项][信号] 进程名称
    
  • 作用:按照进程名称杀死进程

  • 选项:

    • -i:交互式,在杀死某个进程之前询问是否要杀死某一个进程

    • -I:忽略进程名称的大小写

pkill 命令

  • 用法:

    pkill [选项][信号] 进程名称
    
  • 作用:按照进程名称终止进程,和killall基本一致

  • 选项:

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

      //使用w命令来查看本机已经登录的进程
      w
      //强制杀死从pts/1虚拟终端登录进来的进程
      pkill -9 -t pts/1
      

进程的优先级

进程优先级简介

Linux 擦作系统是一个多用户,多任务的操作系统,Linux系统中通知运行着非常多的进程,但是CPU在同一个时钟周期内只可以运算一个指令,进程优先级决定每个进程处理的先后顺序

查看进程优先级

  • 命令:

    ps -le
    
  • 说明:

    PRI 代表Priority,NI代表Nice,这两个值都表示优先级,数字越小代表优先级越大。最终的进程优先级是priority 和 nice的和是最终的优先级。只可以修改nice的值,不可以修改priority的值。

  • 修改NI值的注意事项:

    • NI 值的范围是-20到19

    • 普通用户调整NI的范围是0到19,而且只能调整自己的进程

    • 普通用户只可以调高NI的值,不可以调低NI的值,

    • root用户才可以设置进程NI值为负值,而且可以调整任何用户进程。

    • PRI(最终值)=PRI(原始值)+ NI

    • 用户只能修改NI的值,不能直接修改PRI

修改进程优先级

  • nice [选项] 命令

    nice命令可以给新执行的命令直接赋予NI值,但是不能 修改已经存在进程的NI值

    • 选项

      -n NI值:给命令赋予NI值。

    • 例子:

      nice -n -5 service httpd start

  • renice [优先级] PID

    renice 命令是修改已经存在进程的NI值的命令

    • 例子:

      renice -10 2125
      

猜你喜欢

转载自blog.csdn.net/qq_38863413/article/details/89637625