快速掌握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  <PID>       

 

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/用户名

命令操作:
 

crontab -e [-u 用户名]     //编辑计划任务  ​

crontab -l [-u 用户名]     //查看计划任务  

​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  谨慎使用,使用不妥当,会导致数据丢失

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值