美文网首页学习LinuxLinux 学习
从零开始学习Linux(五十三):Linux系统进程管理

从零开始学习Linux(五十三):Linux系统进程管理

作者: 通靈鹿小六 | 来源:发表于2021-01-14 06:30 被阅读0次

    1、进程简介

    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

    可以查看系统中所有进程、杀死进程以及判断服务器健康状态。

    1.1、查看系统中所有进程
    ps aux
    

    命令作用:查看系统中所有进程,使用BSD操作系统格式。命令输出结果:

    列名 说明
    USER 该进程是由哪个用户产生的
    PID 进程的ID号
    %CPU 该进程占用CPU资源的百分比
    %MEM 该进程占用物理内存的百分比
    VSZ 该进程占用虚拟内存的大小,单位KB
    RSS 该进程占用实际物理内存的大小,单位KB
    TTY 该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
    STAT 进程状态。
    START 该进程的启动时间
    TIME 该进程占用CPU的运算时间,注意不是系统时间
    COMMAND 产生此进程的命令名

    进程状态说明:

    • D:不能中断的进程(通常是IO) ;
    • R:运行状态;
    • S:睡眠 ;
    • T:停止状态;
    • Z:僵尸进程;
    • s:包含子进程;
    • +:位于后台;
    ps -le
    

    命令作用:查看系统中所有进程,使用Linux标准命令格式。命令输出结果:

    1.2、top命令

    命令作用:用于动态地监视进程活动与系统负载等信息;
    命令格式:top [选项];

    • -d 秒数:指定top命令每隔几秒更新。默认是3秒 在top命令的交互模式当中可以执行的命令
    • ?或h:显示交互模式的帮助
    • P:以CPU使用率排序,默认就是此项
    • M:以内存的使用率排序
    • N:以PID排序
    • q:退出top
    top
    

    命令输出结果:

    第一行信息为任务队列信息:top - 16:16:32 up 17 days, 22:45, 1 user, load average: 0.11, 0.06, 0.04。

    内容 说明
    16:16:32 系统当前时间
    up 17 days, 22:45 系统的运行时间,本机已经运行17天 22小时45分钟
    1 users 当前登录了两个用户
    load average: 0.11, 0.06, 0.04 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,表示负载较小。如果大于1,表示系统已经超出负荷。

    第二行为进程信息:Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie。

    内容 说明
    Tasks: 89 total 系统中的进程总数
    1 running 正在运行的进程数
    88 sleeping 睡眠的进程
    0 stopped 正在停止的进程
    0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程

    第三行为CPU信息:%Cpu(s): 1.0 us, 1.0 sy, 0.0 ni, 96.7 id, 1.0 wa, 0.3 hi, 0.0 si, 0.0 st。

    内容 说明
    %Cpu(s): 1.0 us 用户模式占用的CPU百分比
    1.0 sy 系统模式占用的CPU百分比
    0.0 ni 改变过优先级的用户进程占用的CPU百分比
    96.7 id 空闲CPU的CPU百分比
    1.0 wa 等待输入/输出的进程的占用CPU百分比
    0.3 hi 硬中断请求服务占用的CPU百分比
    0.0 si 软中断请求服务占用的CPU百分比
    0.0 st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

    第四行为物理内存信息:MiB Mem : 1829.5 total, 121.3 free, 268.1 used, 1440.1 buff/cache。

    内容 说明
    1829.5 total 物理内存的总量,单位MB
    121.3 free 空闲的物理内存大小
    268.1 used 已经使用的物理内存大小
    1440.1 buff/cache 作为缓冲和缓存的内存大小

    第五行为交换分区(swap)信息:MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1377.8 avail Mem

    内容 说明
    0.0 total 交换分区(虚拟内存)的总大小
    0.0 used 已经使用的交互分区的大小
    0.0 free 空闲交换分区的大小
    1377.8 avail Mem 交换分区可用内存大小
    1.3、查看进程树

    命令格式:pstree [选项]
    选项说明:

    • -p:显示进程的PID;
    • -u:显示进程的所属用户;

    执行命令1:

    pstree
    

    执行命令2:

    pstree -p
    
    1.4、pidof命令

    命令作用:用于查询某个指定服务进程的PID值;
    命令格式:pidof 服务名称;

    查看apache服务进程号,执行命令:

    pidof httpd
    
    1.5、kill命令

    查看可用的进程信号,执行命令:

    kill -l
    

    常用进程信号表

    信号代号 信号名称 说明
    1 SIGHUP 该信号让进程立即关闭,然后重新读取配置文件之后重启。
    2 SIGINT 程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键。
    8 SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。
    9 SIGKILL 用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制终止进程。
    14 SIGALRM 时钟定时信号,计算的是实际的时间或时钟时间。alarm函数 使用该信号。
    15 SIGTERM 正常结束进程的信号,kill命令的默认信号。有时如果进程已经发生问题,这个信号是无法正常终止进程的,我们才会尝 试SIGKILL信号,也就是信号9。
    18 SIGCONT 该信号可以让暂停的进程恢复执行,本信号不能被阻断。
    19 SIGSTOP 该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号不能被阻断。

    杀死进程命令格式:kill [信号代号] PID;

    重启进程号为22354的进程,执行命令:

    kill -1 22354
    

    强制杀死进程号为22368的进程,执行命令:

    kill -9 22368
    
    1.6、killall命令

    命令作用:按照进程名杀死进程。和kill不一样,killall是根据进程名杀死进程;
    命令格式:killall [选项] [信号代号] 进程名;
    选项说明:

    • -i:交互式,询问是否要杀死某个进程
    • -I: 忽略进程名的大小写;

    执行命令杀死apache进程:

    killall -9 httpd
    

    进程杀死后再次查看服务的pid,发现没有找到对应的PID。整个过程如下图所示:

    1.7、pkill命令

    命令作用:按照进程名终止进程,此命令最大的作用是按照终端号踢出用户;
    命令格式:pkill [选项] [信号] 进程名;
    选项说明:

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

    使用w命令可以查看本机已经登录的用户:

    从图中可以看到,有两个登录用户,一个是root,一个是zhoujielun。因为zhoujilun太帅,必须得踢出他。执行命令:

    pkill -t -9 pts/1
    

    执行后,再次查看登录的用户信息,发现只剩下root了。如下图所示:

    相关文章

      网友评论

        本文标题:从零开始学习Linux(五十三):Linux系统进程管理

        本文链接:https://www.haomeiwen.com/subject/sludaktx.html