进程及计划任务管理

查看进程信息

查看进程的静态信息:PS
方法一:ps aux
a(显示终端的所有进程,以及其他用户的进程)
u(表示列出进程的用户)
x(显示所有终端的进程)

方法二:ps -elf
-e (显示系统内的所有进程信息)
-l (使用长格式显示进程信息)
-f (使用完整格式显示进程信息)

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

查看进程信息:pgrep
pgrep相关选项:
-l:显示进程名,缺省时只输出PID号
-U:指定特定用户
-t:指定终端

pgrep -l "log"

模糊的查询到PID号和进程名:
在这里插入图片描述

pgrep -l -U mq

查看进程树:pstree
-a (显示完整信息)
-u (列出对应的用户名)
-p (列出对应的PID号)
teacher (指定用户)

pstree -aup

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

控制进程

进程启动方式
1.手工启动
前台启动:输入命令,执行程序
后台启动:在命令行尾加入“&”符号

2.调度启动
使用 at 命令,设置一次性计划任务
使用 crontab 命令,设置周期性计划任务

3.进程前后台调度
Ctrl+Z:将当前进程挂起,调入后台,停止执行
在这里插入图片描述

查看处于后台的任务:jobs -l
在这里插入图片描述

恢复挂起命令转到前台执行:fg
在这里插入图片描述

终止进程运行
Ctrl+C组合键
终端正在执行的命令

kill、killall命令
kill用于种植指定PID号的进程
killall用于终止指定名称相关的所有进程
-9选项用于强制终止

pkill命令
根据特定条件终止相应的进程
常用选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程

计划任务管理

一次性计划任务:at
在这里插入图片描述

at [HH:MM] [yyyy-mm-dd](不携带日期表示为当天)

在这里插入图片描述
当前时间为11:02:21,用at命令设置在当天的11:04的时候重启一次,按Ctrl+D提交任务,表示只会进行一次操作
在这里插入图片描述
atq:查看为执行的任务列表
atrm 3:删除序号3的任务

周期性任务设置:crontab
按照预先设置的时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作

属于周期性计划任务

主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名

编辑计划任务
在这里插入图片描述

查看计划任务
在这里插入图片描述

删除计划任务
在这里插入图片描述

任务配置格式
在这里插入图片描述
分钟 取值为0~59之间的任意整数
小时 取值为0~23之间的任意整数
日期 取值为1~31之间的任意整数
月份 取值为1~12之间的任意整数
星期 取值为0~7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本

时间数值的特殊表示方法
*表示该范围内的任意时间
,表示间隔的多个不连续时间点
-表示连续的时间范围
/ 指定间隔的时间频率

crontab -e [-u root]

每分钟定时执行一次规则

每1分钟执行:
*/1****或者*****

每5分钟执行:
*/5 * * * *

每小时定时执行一次规则

每小时执行:
0 * * * *或者0 */1 * * *
 
每天上午7点执行:
0 7 * * *

每天上午7点10分执行:
10 7 * * *

每天定时执行一次规则

每天执行:
0 0 * * *

每周定时执行一次规则:

每周执行:
0 0 * * 0

每月定时执行一次规则:

每月执行:
0 0 1 * *

每年定时执行一次规则:

每年执行:
0 0 1 1 *

其他例子

5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令]

输出语句:

echo '30 7 * * 6 /usr/bin/systemctl httpd restart' >> /var/spool/cron/root
每个星期6的7点30会以root用户执行重启httpd这个服务

猜你喜欢

转载自blog.csdn.net/MQ107/article/details/113686615