Linux----进程和计划任务管理

文章目录

  • 一、查看进程
    • 1.1:程序和进程的关系
      • 1.1.1:程序
      • 1.1.2:进程
    • 1.2:ps命令查看
    • 1.3:pstree查看命令
      • 1.4:top动态查看
  • 二、控制进程
    • 2.2:进程的启动方式
      • 2.2.1:手工启动
  • 三、at一次性任务设置
  • 四、crontab周期性任务设置
    • 4.1:crontab的配置文件和目录
    • 4.1:使用crontab命令管理用户的计划任务

一、查看进程

1.1:程序和进程的关系

1.1.1:程序

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

1.1.2:进程

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

1.2:ps命令查看

  • 静态查看 ps命令
    ps命令是Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照
ps命令基本格式
ps [选项]  
a  显示当前终端下的所有进程信息,包括其他用户的进程、与“x”选项结合时将显示系统中所有的进程信息
u  使用以用户为主的格式输出进程信息
x  显示当前用户在所有终端下的进程信息
-e 显示系统内的所有进程信息
-l 使用长(Long)格式显示进程信息
-f 使用完整的(Full)格式显示进程信息
  • 执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程
    Linux----进程和计划任务管理_第1张图片

  • ps aux命令 以简单列表的形式显示出进程信息
    Linux----进程和计划任务管理_第2张图片

  • 上述输出信息中,第一行为列表标题,其中个字段的含义如下

    USER:启动该进程的用户账号的名称
    PID :该进程在系统中的数字ID,在当前系统中是唯一的kill -9 PID号
    TTY :表明该进程在哪个终端上运行,“?”表示不需要终端
    STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵尸)、<(高优先级)、
    N(低优先级)、s(父进程)、+(前台进程)、对于僵尸进程要手动关闭
    START:启动该进程的时间
    TIME:该进程占用的CPU时间
    COMMAND:启动该进程的命令名称
    %CPU:占用CPU百分比
    %MEM:占用内存百分比
    VSZ: 占用虚拟机内存大小(swap)
    RSS: 占用物理内存的大小(物理内存)

  • ps -elf 命令:以长格式显示系统中的进程信息
    Linux----进程和计划任务管理_第3张图片
    PPID:表示对应进程的父进程的PID号
    PRI:用户态优先级(人为)
    NI: nice值,内核态优先级,取值范围(-20~19),值越小,优先级越高
    ADDR:若是 - ,代表正在运行
    SZ:在swap交换分区的容量
    WCHAN:当前进程在内核中的名称
    STIME:启动时间

1.3:pstree查看命令

  • pstree命令以属性结构列出进程信息,可以更直观的判断各进程的相互关系(父,子进程)
    yum -y install psmisc 安装pstree命令
    pstree -aup
    -a: 显示完整信息
    -u:列出对应用户名
    -p:列出对应PID号
    Linux----进程和计划任务管理_第4张图片

1.4:top动态查看

选项:M:以内存大小排序
c:以CPU占用排序
h:top程序在线帮助信息
q:退出
Linux----进程和计划任务管理_第5张图片

二、控制进程

2.2:进程的启动方式

2.2.1:手工启动

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令末尾加入“&”符号
[root@localhost ~]# cp /dev/cdrom mycd.iso&	--在后台运行复制镜像文件进程'
[1] 3227		-----输出信息中心包括后台任务序号,PID号'
  • grep
    pgrep -l -U “tom” ###查看tom运行的进程
    pkill -9 -U “tom” ###强行终止tom运行的进程
    pgrep -l -U “tom” ###在查看tom运行的进程
  • pkill -9 -U “tom” 与 kill -9
    killall 用法:
    killall hello1 —杀死某个进程
    killall hello* —杀死以hello开头的相关所有进程
    sudo killall -u tom —杀死tom用户运行的所有进程
    killall -o 5h —杀死进程时间大于5小时的进程
    killall -y 4h —杀死进程时间小于4小时的进程
    killall -I HELLO —忽略大小写
  • kill用法:
    1(HUP)-重新加载进程。
    9(KILL)-终止进程。
    15(TERM)-正常停止进程
    kill -l ----获取信号列表
    kill -9 +进程号

三、at一次性任务设置

格式:at [HH:MM] [yyyy-mm-dd]		'//at  时:分  年-月-日'
  • at命令使用顺序
    查看时间–>设置时间–>输入命令–>Ctrl + D提交任务
    date:查看当前时间。设置任务,时间不可在当前时间之前
    命令输入完成后按 Ctrl + D组合键提交任务即可
[root@localhost ~]# date		----查看当前时间'
2019年 11月 13日 星期三 00:45:58 CST
[root@localhost ~]# at 00:48 2019-11-13 		---设置任务执行时间'
at> pgrep -U root |wc -l > /tmp/ps.root			---输入命令(统计该时间点系统由root用户运行的进程数量,并将数值保存到/tmp/ps.root文件中)'
at> 		'//按Ctrl + D组合键提交任务'
job 1 at Wed Nov 13 00:48:00 2019
[root@localhost ~]# cat /tmp/ps.root		'//查看任务完成情况'
175
  • atq 命令,查看待执行任务的列表
    对于已经设置,但并未执行的任务,可通过atq命令查看。(已经执行的任务不会出现)
    atq查看的任务列表,每个任务的序号不会变动,即便1-5个序号任务已经执行完毕,显示出的第六个未执行任务的序号也是6,而不会变成1。
  • atrm 命令,删除指定编号的at任务
    atrm命令用来删除指定编号的at任务,编号可通过atq查看。
    删除后的at任务不会出现在atq显示结果中。

四、crontab周期性任务设置

  • crond通过多个目录和文件设置计划任务,不同类型的任务由不同的配置文件来配置
  • cat /etc/crontab 计划任务配置文件
  • crontab -e 添加计划任务
  • crontab -l 查看计划任务
  • crontab -r 删除计划任务

4.1:crontab的配置文件和目录

crontab通过目录和文件设置计划任务,不同类型的任务由不同的配置文件来设置。

  • /etc/crontab ----系统任务配置文件
    /etc/crontab文件中设置的是维护Linux系统所需的任务,自动设置,不建议手动修改文件。
[root@localhost ~]# cat /etc/crontab		'//查看系统任务配置文件'
SHELL=/bin/bash				'//设置执行计划任务的Shell环境'
PATH=/sbin:/bin:/usr/sbin:/usr/bin			'//定义可执行命令及程序的路径'
MAILTO=root				'//将任务输出信息发送到指定用户的邮箱'
HOME=/ 			'//执行计划任务时使用的主目录'

  • /etc/cron./ 系统默认设置cron任务的配置文件存放目录
    软件包crontabs安装后,会在/etc/cron.
    /目录下生成存放一些系统默认设置的计划任务目录,设置了系统每个小时,每一天做些什么任务
/etc/cron.hourly/ 目录下存放的是系统每小时要做的任务可执行脚本
/etc/cron.daily/ 目录下存放的是系统每天要做的任务可执行脚本
/etc/cron.weekly/ 目录下存放的是系统每周要做的任务可执行脚本
/etc/cron.monthly/ 目录下存放的是系统每月要做的任务可执行脚本

这些是可执行脚本,不是cron配置文件,crond服务通过run-parts 工具调用执行这些脚本

  • /var/spool/cron/-----用户cron任务的配置文件存放目录
    用户自行设置的cron计划任务将被保存到目录/var/spool/cron/中
    用户使用crontab命令创建计划任务,就会在/var/spool/cron/目录下生产一个与用户名相同的文件

4.1:使用crontab命令管理用户的计划任务

命令格式: 时间周期设置 + 任务内容设置
Linux----进程和计划任务管理_第6张图片
分时日月周的取值范围和命令的说明

字段 说明
分钟 取值为0到59之间的任意整数
小时 取值为0到23之间的任意整数
日期 取值为1到31之间的任意整数
月份 取值为1到12之间的任意整数
星期 取值为0到7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本

你可能感兴趣的:(linux)