• 快速掌握Linux中的“进程管理和任务执行”


    内容预知

     1.进程的相关管理

     进程和线程联系

    2.  查看进程

    2.1 静态查看进程—— ps aux

    2. 2静态查看进程—— ps -elf

     2. 3查看线程—— ps -aT

    2.4 动态查看进程 ——top 

    2.5 根据条件查看进程 

    ​编辑 

     2.6 树状查看进程——pstree

     3.手动控制进程

     3.1 将前台命令进程转入后台——&

     3.2 直接查看后台进程命令——jobs -l

     3.3 恢复后台进程到前台——fg +<序号>

     3.4  杀进程

    3.4.1 杀进程——kill 

    3.4.2 杀进程——killall 

     3.4.3 杀进程——pkill

     3.5 杀进程的原理和强制杀进程

     4.计划任务的管理

    4.1 一次性的计划任务 

     4.2 周期循环的计划任务

     4.2.1 使用crontab -e的使用方法

    4.2.2   周期计划任务的查看 

    4.3   其他方式设置周期任务 

     总结


     1.进程的相关管理

     进程和线程联系

    •  程序 :是一组计算机能识别和执行的指令
    •  进程:开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程
    •  线程:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

     

    2.  查看进程

    2.1 静态查看进程—— ps aux

    a显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
    u使用以用户为主的格式输出进程信息。
    x显示当前用户在所有终端下的进程信息。

    其他补充:

    • -e:显示系统内的所有进程信息。
    • -l:使用长(Long)格式显示进程信息。
    • -f:使用完整的(Full)格式显示进程信
    • k|--sort 属性:对属性排序,属性前加 - 表示降序排列。

     

    ps aux 进程信息解释
    名称解释
    USER产生该进程的的用户名称
    PID进程的id,由系统分配
    %CPU该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
    %MEM该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
    VSZ该进程占用虚拟内存的大小,单位为 KB。
    RSS该进程占用实际物理内存的大小,单位为 KB。
    TTY该进程是在运行的终端
    STAT进程所处的状态
    START该进程的启动时间。
    TIME该进程占用 CPU 的运算时间,注意不是系统时间。
    COMMAND产生此进程的命令名。

    补充一: STAT所处状态的种类

    -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。

    -R:该进程正在运行。

    -S:该进程处于睡眠状态,可被唤醒。

    -T:停止状态,可能是在后台暂停或进程处于除错状态。

     -Z:僵尸进程。进程已经中止,但是还是占用硬件资源。 -


    补充二:TTY进行运行的终端

     tty1~tty6 是本地的字符界面终端

    tty7 是图形终端

    注意:可以通过 Alt+F1 ~ F7 快捷键切换不同的终端 (笔记本:fn+f1  能使用本来的用法)

    2. 2静态查看进程—— ps -elf

    列名解释
    F进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行; 4:进程使用超级用户权限;
    S进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
    UID运行此进程的用户的 ID;
    PID进程的 ID;
    PPID父进程的 ID;
    C该进程的 CPU 使用率,单位是百分比;
    PRI进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
    NI进程的优先级,数值越小,该进程越早被执行;可以人为修改
    ADDR该进程在内存的哪个位置;
    SZ该进程占用多大内存;
    WCHAN该进程占用多大内存;
    TTY该进程由哪个终端产生;
    TIME该进程占用 CPU 的运算时间,注意不是系统时间;
    CMD产生此进程的命令名;

     2. 3查看线程—— ps -aT

     

    2.4 动态查看进程 ——top 

     选项:

    • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒。
    • -b:使用批次处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中。
    • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用。
    • -p 进程PID:仅查看指定 ID 的进程。
    • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误。
    • -u 用户名:只监听某个用户的进程。
    • -H  查看线程

     

    注意:load average系统在之前 1 分钟、5 分钟、15 分钟的平均负载。(当这三个值长期处在cpu的百分之七十到百分之八十,说明此时处在高负荷工作中。百分之八十以上则是超负荷)

    原因:1.性能不足  2.服务器被攻击  3.程序出现了bug

    除top以外   还有  w   uptime  命令可以查看平均负债值

     在top显示界面的操作:

    • ? 或 h:显示交互模式的帮助。
    • c:按照 CPU 的使用率排序,默认就是此选项。
    • M:按照内存(memory)的使用率排序。
    • N:按照 PID 排序。
    • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序。
    • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号。
    • r:按照 PID 给某个进程重设优先级(Nice)值。
    • q:退出 top 命令。
    • z:彩色显示
    • F:通过光标设置字段是否展示,以及展示顺序。

    2.5 根据条件查看进程 

    • -U:指定用户
    • -l:显示进程名
    • -a:显示完整格式的进程名
    • -P < PID>:显示指定进程的子进程
    • -t   查看终端

     2.6 树状查看进程——pstree

     选项:

    • -a:显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
    • -p:显示PID。
    • -u:显示进程的用户名称。
    • -u 用户名:显示指定用户的进程。
    • -H < pid>:高亮显示指定进程及其前辈进程。
    • -T:不显示线程thread,默认显示线程。

     3.手动控制进程

    进程的启动分为前台启动和后台启动

    • 前台启动 :用户输入命令以后,直接在页面中启动该命令
    • 后台启动:当该命令需要的操作过大,占用可终端,导致用户无法再次输入其他命令,将该处理进程放在后台处理,同时可以进行别的操作 

     3.1 将前台命令进程转入后台——&

     

     通过ps -aux   查看到 sleep  600   命令进程在后台运行

     

     3.2 直接查看后台进程命令——jobs -l

     此外:ctrl -z   可以将正在进行的前台进程挂起

     3.3 恢复后台进程到前台——fg +<序号>

    恢复挂起的前台命令进程

     3.4  杀进程

    3.4.1 杀进程——kill 

     kill         

     

    3.4.2 杀进程——killall 

     killall <进程名>

     3.4.3 杀进程——pkill

     pkill   -t    <终端>  根据终端进行杀进程 

     pkill -U <用户>  :  根据所属用户,来杀进程

     

     

     

     3.5 杀进程的原理和强制杀进程

     我们经常会用到kill命令去杀死一个进程,但是有时会出现kill不成功的现象,这是就要用到kill -9

     

     -15 :代表信号为 SIGTERM,发出的信号为通知信号,请该进程停止运行并且保存退出

    -9:   代表信号为 SIGKII      ,发出的信号为强制清退信号,该信号不能捕获也不能清退,让进程立即退出(不管是否保存)。

     4.计划任务的管理

    4.1 一次性的计划任务 

     at:任务设定

     atq  查看预设定的任务

     atrm +<序号> 删除设定的任务

     

     4.2 周期循环的计划任务

    • 按照预先设置的时间周期(分 时 日  月  周)重复执行用户指定的命令操作(绝对路径的命令或者脚本)。
    • 属于周期性计划任务。
    • 主要设置文件。
      • 全局配置文件,位于文件:/etc/crontab
      • 系统默认的设置,位于目录:/etc/cron.*/
      • 用户定义的设置,位于文件:/var/spool/cron/用户名

    命令操作:
     

    1. crontab -e [-u 用户名]     //编辑计划任务  ​
    2. crontab -l [-u 用户名]     //查看计划任务  
    3. ​crontab -r [-u 用户名]     //删除计划任务

    在使用 crontab前注意:crond的服务是否打开

     4.2.1 使用crontab -e的使用方法

     crontab  类似vim编辑器一样打开一个配置文件,向配置文件中写入周期任务。但是写周期任务,需要对使用周期时间进行理解和掌握

     编辑任务的格式:

     特殊时间的表示符号:

    符号用法
    *(星号)代表任何任意时间。(例如第一个*,表示每分钟执行一次,其他位置是这个意思)
    ,(逗号)代表多个不连续的时间点(例如第一个*设置为 10,20,30   表示10分 20分  30分   各执行一次)
    -(中杠)代表连续的时间范围
    /(斜杠)代表每隔多久执行一次(即间隔的时间频率)。

    时间引例:

      0 8-18/2 * * *   //8点到18点之间每2小时  

    0 * */3 * *       //每3天的每个整点

    0 14-18 1,5,15,30 * *     // 每个月 1号  ,5 号 ,15号,  30号   下午 2到6点  执行

    15-45/5  10,22   */10    10     *         // 每年10月每隔10天的上午和下午10点的15-45分内每隔5分钟执行一次

    which   命令    //查看该命令的绝对路径

     

    4.2.2   周期计划任务的查看 

     4.2.3   周期任务的删除

    4.3   其他方式设置周期任务 

    vim  /var/spool/cron/

     

    vim /etc/crontab

     

     总结

    静态查看:ps aux,ps -elf

    动态查看:top

    查看指定进程:prtstat

    以树形结构列出:pstree

    at 一次性任务的设定

    杀进程时注意 -9  谨慎使用,使用不妥当,会导致数据丢失

    周期任务计划要注意周期方法的使用,利用好周期符号,设定先要的执行时段

  • 相关阅读:
    漫画 | 单元测试实在是太可怕了!
    java 实现事件监听EventListener的方式详解及分析
    分享一下微信付费文章功能怎么做
    Linux排查网站访问慢的原因分析
    代码优化工具-测试程序执行时间-IDEAdebug+StopWatch
    Selenium基础 — 拓展:使用浏览器加载项配置实现用户免登陆
    474922-22-0 DSPE-PEG-MAL Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺
    Redis 字符串( String )
    Python魔法:20个让你编程事半功倍的奇淫技巧(建议收藏)
    等保测评答疑
  • 原文地址:https://blog.csdn.net/qq_62462797/article/details/126231868