Linux进程和计划任务管理

目录

一、程序和进程的关系

二、查看进程信息

1、ps命令

2、top命令

3、pgrep命令

三、进程的启动方式

2.1 使用at命令,设置一次性计划任务

2.2 使用crontab命令,设置周期性任务

四、进程的前后台调度

五、终止进程的运行

 

 

 

一、程序和进程的关系

1、程序

  • 保存在硬盘、光盘等介质中的可执行代码和数据
  • 文件中静态保存的代码

2、进程

  • 在CPU及内存中运行的程序代码
  • 动态执行的代码
  • 父、子进程
    • 每个程序可以创建一个或多个进程

二、查看进程信息

1、ps命令

  1.1 查看静态的进程统计信息

ps aux  

 

1 a:显示终端上的所有进程,包括其它用户的进程
2 u:表示列出进程的用户
3 x:显示所有终端的进程

Linux进程和计划任务管理

 

Linux进程和计划任务管理

ps -elf     //-不可省略
1 -e:显示系统内的所有进程信息
2 -l:使用长格式显示进程信息
3 -f:使用完整的格式显示进程信息
4 -a:显示所有进程pid
5 -T:查看线程信息
ps -aT    //显示所有线程

Linux进程和计划任务管理

Linux进程和计划任务管理

 

   补充:僵尸进程:一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就有Init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

2、top命令

  2.1 查看动态的进程排名信息

top

 Linux进程和计划任务管理

 

  •  第一行:任务队列信息
    • 08:53:58    :系统时间
    • up 3 min    :系统已运行时长
    • 1 user    :当前登录用户数
    • load average:0.00,0.01,0.01     :系统负载,(CPU的个数*核数*0.7)即单位时间内系统处理的任务数,后面三个数值分别为1分钟、五分钟、十五分钟前到现在的平均值
  • 第二行:进程信息
    • Tasks:总进程数
    • running:正在运行的进程数
    • sleeping:休眠的进程数
    • stopped:中止的进程数
    • zombie:僵死的进程数
  • 第三行:CPU的信息
    • us:用户占用
    • sy:内核占用
    • ni:优先级调度占用
    • id:空闲CPU,要了解空闲的CPU百分比,主要看%id部分
    • wa:I/O等待占用
    • hi:硬件中断占用
    • si:软件中断占用
    • st:虚拟化占用
  • 第四行:内存信息
    • total:总内存空间
    • free:空闲内存
    • used:已用内存
    • buff/cache:物理内存和交换内存的缓冲区总和
  • 第五行:交换空间的信息
    • total:总交换空间
    • free:空闲交换空间
    • used:已用交换空间
    • avail Men:可用物理空间

  Linux进程和计划任务管理

 

   2.2 top常用命令

1 //按键
2 P:根据CPU使用百分比大小进行排序
3 M:根据驻留内存大小进行排序
4 N:根据启动时间进行排序
5 c:切换显示命令名称和完整命令行
6 h:可以获得top程序的在线帮助xinx
7 k:根据提示输入指定程序的PID号并按Enter键终止对应的进程
8 q:退出top程序
9 1:显示CPU个数和状态

Linux进程和计划任务管理

 

 Linux进程和计划任务管理

 

 

3、pgrep命令

  3.1 根据特定条件查询进程PID信息

Linux进程和计划任务管理

 

 Linux进程和计划任务管理

 

 三、进程的启动方式

1、手工启动

  1.1 前台启动:用户输入命令,直接执行程序

  1.2 后台启动:在命令行尾加入“&”符号

2、调度启用

  2.1 使用at命令,设置一次性计划任务

at [HH:MM] [yyyy-mm-dd]

Linux进程和计划任务管理

 

 

  2.2 使用crontab命令,设置周期性任务

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

  2.2.1 管理crontab计划任务

  • 编辑计划任务
crontab -e [-u 用户名]  //-u缺省时默认是针对当前用户

 

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

 

  • 删除计划任务
crontab -r [-u 用户名]

  2.2.2 任务配置格式

Linux进程和计划任务管理

 

  •  时间数值的特殊表示方式
    • *:表示该范围内的任意时间
    • ,:表示间隔的多个不连续时间点
    • -:表示一个连续的时间范围
    • /:指定间隔的时间频率
  • 应用示例
    • 每一分钟执行:*/1 * * * *或者* * * * *
    • 每小时执行:0 * * * * 或者0 */1 * * *
    • 每天下午2点10分定时执行:10 14 * * *
    • 每周定时执行:0 0 * * 1
    • 每月定时执行:0 0 1 * *
    • 每年定时执行:0 0 1 1 *
    • */15 8-11 10,20 * * ls :每个月的10号和20号的八点到十一点内的每15分钟执行一次ls命令
    • 其他的方法:echo '30 7 * * 6 /usr/bin/systemctl httpd restart' >> /var/spool/cron/root

Linux进程和计划任务管理

 

 Linux进程和计划任务管理

 

 Linux进程和计划任务管理

 

四、进程的前后台调度

1、Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行

2、jobs -l:查看处于后台的任务列表

3、fg命令:将后台进程恢复到前台运行,可指定任务序号

五、终止进程的运行

1、Ctrl+C组合键:中断正在执行的命令

2、kill、killall命令

  • kill用于终止指定PID号的进程
  • killall用于终止指定名称相关的所有进程
  • -9选项用于强制终止(可能会导致一部分数据的丢失,因为有些数据是放在缓存里,还没有写入硬盘)

3、pkill命令:根据特定条件终止相应的进程

  3.1 常用命令选项

  • -U:根据进程所属的用户名终止相应进程
  • -t:根据进程所在的终端终止相应进程

 

上一篇:mysql备份策略的实现(全量备份+增量备份)


下一篇:Linux crontab定时任务示例