- 控制进程和计划管理任务
- 控制进程
- Ctrl+组合键
- kill命令
- 进程的前后台控制
- 计划任务管理
- 一次性计划任务(at命令)
- 周期性计划任务(crontab命令)
- 1)/etc/crontab 系统任务配置文件(全局)
- 2)/var/spool/cron/ 用户 cron 任务的配置文件存放目录
- 3)crontab命令
- 4)计划任务配置
ctrl+c:发送sigint信号,终止一个进程
ctrl+z:发送sigstop信号,挂起一个进程,将作业放置到后台(暂停)
ctrl+d:不是发送信号,表示一个特殊的二进制值,表示EOF。代表输入完成或注销。
kill命令发送信号,杀死进程
kill PID号
kill -9 PID号:-9选项用于强制终止
killall 命令名:用于终止指定名称的进程(可用于需要结束系统中多个相同名称的进程)
pkill [选项] 参数:可终止不同参数下的进程
-U 用户名:终止该用户创建的进程
-t 终端号:终止该终端中所有进程
进程的前后台控制 fg:将后台进程恢复到前台运行,可指定任务序号
bg:将后台中暂停执行的进程在后台中恢复执行
&:在命令的最后加一个&,程序将在后台自动执行。当终端退出(挂起)的时候命令也自动退出
nohup命令:永久运行进程(不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系)(可以和&同时用:nohup 命令 &——表示永久的在后台运行命令)
计划任务管理在Linux操作系统中,除了用户即时执行的命令操作之外,还可以配置在指定的时间、指定的日期执行预先计划的系统管理任务(如定期备份、定期采集监测数据)。CentOS系统中默认已安装了at、cronie软件包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。
一次性计划任务(at命令)使用at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务。
设置一次性计划任务时,在at命令行中一次制定计划执行任务的时间、日期作为参数(若只指定时间则表示当天的该时间段,若只指定日期则表示该日期的当前时间),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以一次设置多条语句,最后按Ctrl+D组合键提交任务。所设置的命令操作将在计划的时间点被依次执行。
[root@root /]#at [HH:MM] [yyyy-mm-dd] at>命令 at>
设置完毕后按Ctrl+D组合键提交。
atq命令:显示还未执行的at任务
atrm命令:atrm 任务号:删除指定编号at任务
例:先通过date命令确认当前的系统时间,并设置在下个月当天的晚八点自动统计该时间点系统中由root用户运行的进程的数量,并将该数值保到/tmp/ps/root文件中。
[root@localhost ~]# date 2022年 05月 30日 星期一 09:54:41 CST [root@localhost ~]# at 20:00 2022-06-30 at> pgrep -U root | wc -l > /tmp/ps/root at>周期性计划任务(crontab命令) 1)/etc/crontab 系统任务配置文件(全局)job 5 at Thu Jun 30 20:00:00 2022 [root@localhost ~]# atq 5 Thu Jun 30 20:00:00 2022 a root
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash //设置执行计划任务的Shell 环境 PATH=/sbin:/bin:/usr/sbin:/usr/bin //定义可执行命令及程序的路径 MAILTO=root //将任务输出信息发送到指定用户的邮箱
根据/etc/crontab 配置文件中的设定,crond 将按照不同的周期重复执行相应目录中的任务脚本文件
2)/var/spool/cron/ 用户 cron 任务的配置文件存放目录[root@localhost ~]# ll /var/spool/cron/root -rw-------. 1 root root 33 May 7 11:01 /var/spool/cron/root
crond 守护进程会自动检查/etc/crontab 文件、/etc/cron.d/目录及/var/spool/cron/目录中的改变,如果发现有配置更改,它们就会被载入内存,所以当某个 crontab 文件改变后并不需要重新启动 crond 守护进程就可以使设置生效
3)crontab命令 -e:编辑计划任务列表
-u 用户名:指定所管理的计划任务属于哪个用户,默认是当前用户
-l:列表显示计划任务
-r:删除计划任务列表
4)计划任务配置* * * * * 命令 状态 参数 分钟 小时 日期 月份 星期
“*”表示每个时间段,如每分钟,每天。
“-”表示一个联系的时间范围,如1-3表示1,2,3。
“,”表示一个间隔不连续的范围。
“/”用来指定间隔频率,如日期字段中*/3表示每隔3天。
命令可以是普通命令也可以是自己编写的脚本。
例1:每天早上 7:50自动开启 sshd 服务:
[root@localhost ~]# crontab -e 50 7 * * * /usr/bin/systemctl start sshd.service
例2:每隔五天清空一次 FTP 服务器公共目录:
[root@localhost ~]# crontab -e 0 0 */5 * * /usr/bin/rm -rf /var/ftp/pub/*
END



