Linux-进程与计划任务管理(用ps、top、pgrep、pstree等命令查看与控制进程,一次性计划与周期性计划实操)

一、 查看和控制进程

程序是保存在硬盘、光盘等介质中可执行的代码和数据,是静态的。而程序是在CPU及内存中运行的,动态执行的代码。
每个程序可以创建一个或多个进程。

1.1 查看进程

1.1.1 ps命令 --查看静态的进程统计信息(processes statistic)

ps命令是Linux系统中最为常见的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。

ps命令
ps a   //显示当前终端下所有的进程信息,包括其他用户的进程。  
ps u   //使用以用户为主的格式输出进程信息
ps x   //显示当前用户在所有终端下的进程信息
ps ax  //显示系统中所有的进程信息
ps -e  //显示系统内的所有进程信息
ps -l  //使用长(long)格式显示进程
ps -f  //使用完整的(full)格式显示进程信息

通常我们执行“ps aux”或“ps -elf”命令,相比之下,ps aux这条命令显示的进程更加详细,我们也更常使用。
在这里插入图片描述

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

1.1.2 top命令–查看进程动态信息

与ps命令看到的静态的进程信息相反,top命令看到的是动态的进程信息,进程的信息一直是在不停的刷新的,默认是三秒刷新一次,相当与windows里面的任务管理器。
用法就是直接在字符界面输入“top”。我们就可以从中获取进程信息,如下图所示。
在这里插入图片描述

1.1.3 pgrep命令–查询进程信息

当我们在使用ps命令查看自己所需要的进程信息时,我们会用到grep命令筛选,这样使用有点不方便,于是出现了pgrep命令。
pgrep命令是用来查询特定进程信息的专用工具。可以通过进程的名称、运行进程的用户、进程所在终端等多种属性查询特定进程的PID号。

pgrep命令
pgrep -l   //指定进程的一部分名称进行查询,同时输出PID与完整进程名
pgrep -U   //查询特定用户的进程
pgrep -t   //查询在特定终端运行的进程

在这里插入图片描述

1.1.4 pstree命令–查看进程树

通过进程树我们可以很好的看出父进程与子进程的关系
如果没有这条命令,我们需要用“yum -y install psmisc”命令 进行安装,因为这条命令属于外部命令。

pstree命令
pstree -a   //显示完整信息
pstree -u   //列出对应用户名
pstree -p   //列出对应PID号

在这里插入图片描述

1.2 控制进程

1.2.1 启动进程

启动进程分为手工启动和调度启动两种。
手工启动又可以分为前台启动和后台启动
前台启动必须等到该进程执行结束并退出后才能继续输入其他命令。
后台启动需要使用“&”操作符,将这个操作符放到要执行命令的最后面,进程会直接放到后台执行,不占用前台的操作界面,可以在前台继续输入命令。

1.2.2 改变进程的运行方式

ctrl+Z   //将当前进程挂起(调入后台并停止执行)
ctrl+c   //终止执行进程
bg       //将挂起的任务继续执行,不调到前台(foreground)
fg       //将后台(background)的任务调到前台运行
jobs     //查看后台的进程
jobs -l  //查看后台进程的PID号

1.2.3 终止进程执行

ctrl+c强制中断只能针对前台运行的进程,对于在后台或者其他终端运行的进程,我们就可以使用kill、pkill和killall命令来中断。

kill命令需要使用进程的PID号作为参数,无特定选项时,kill命令会给该进程发送终止信号并正常退出运行

kill命令
kill 进程PID号     //正常结束相应的进程
kill -9 进程PID号  //强制终止目标进程,有可能会造成数据丢失,慎用

killall可以通过进程名来终止进程,通常适用于系统中有多个相同名称的进程需要结束。

killall命令
killall 进程名     //结束进程名相同的进程,可以是多个
killall -9 进程名  //将所有与进程名相同的进程全部终止,容易终止系统
                    默认的某些服务,需要更加谨慎使用

pkill可以根据进程名称、运行进程的用户、进程所在终端等多种属性终止进程,与“pgrep”命令类似,可以参考。

pkill命令
pkill -U  用户 //指定运行进程的用户,结束进程
pkill -t 终端  //指定进程所在终端,结束进程
pkill -9      //强制终止,后面可以跟用户、终端等属性

二、 计划任务管理

我们平时执行的命令都是即时执行,在一些场合中我们可以设定计划任务,便于执行在我们不便的时候或者需要定期批量执行的任务。
centos7系统中计划任务由at和cronie软件包提供,可以实现一次性计划和周期性计划的功能。

2.1 at一次性任务设置

at命令设置的计划任务只在指定的时间执行一次。要运行at命令,首先应该开启atd系统服务,执行任务的时间点在当前系统的时刻之后。
下面为演示过程

at命令应用
date          //查看当前系统的时间
date -s "2020-06-24 16:30" //修改日期时间为2020年6月24日16时30分
at 16:40 2020-06-24        //一次性计划执行的时间点
at> pgrep -U root|wc -l >/opt/ps.root  //计划执行的内容
at> <EOT>                 //ctrl+d提交任务
job 7 at Wed Jun 24 16:40:00 2020    //计划设置成功的提示

在这里插入图片描述
然后我们只要在指定的时间点查看/opt/ps.root就可以验证是否成功。
在这里插入图片描述
对于我们设置好但是未执行的任务,我们可以使用命令“atq”来查看,已经 执行过的任务不会出现在显示结果中。
如果设置好了又不需要执行我们可以使用“atrm”命令来删除。

2.2 crontab周期性任务设置

crontab命令设置的计划任务会按设置的周期重复执行,前提是对应的系统服务crond必须运行。crontab命令由软件包cronie提供,软件包cronie同时还提供了crontab工具和配置文件/etc/crontab。

2.2.1 /etc/crontab

系统任务配置文件在/etc/crontab中,文件中设置了执行计划任务的参数要求、执行的环境等参数。
在这里插入图片描述

2.2.2 /etc/cron.*/

/etc/cron.*/是系统默认设置cron任务的配置文件存放目录,在软件包crontab 安装后,就会生成系统默认的计划任务目录。这个目录中放的不是配置文件,放的是可执行的脚本,所以要保证位于这些目录位置下的脚本具有可执行权限。

2.2.3 /var/spool/cron/

/var/spool/cron/是用户的cron任务的配置文件存放目录,当我们创建周期性任务时,就会在这个目录下生成一个与用户名相同的文件。
在这里插入图片描述

2.3 使用crontab管理用户的计划任务

我通过实际操作来讲解如何使用crontab管理用户的计划任务。

crontab命令
crontab -e   //编辑计划任务列表
crontab -u   //指定管理的计划任务属于哪个用户,默认是自己,一般
               只有root账户有权限使用此选项
crontab -l   //列表显示计划任务
crontab -r   //删除计划任务
systemctl status crond.service //查看计划任务程序的状态 
systemctl start crond.service  //启动计划任务程序
systemctl stop crond.service   //停止计划任务程序

在这里插入图片描述
我设置的周期计划是每隔2分钟同步一次ntp1.aliyun.com,产生的日志文件,追加到/var/log/ntpdate.log日志文件中。然后在/var/log/ntpdate.log查看结果
在这里插入图片描述
五个位置表示的分别是分钟、小时、日期、月份、星期
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值