一、进程的启动与结束
1.1.手动启动
前台运行:影响当前终端操作
后台运行:不影响当前终端操作
前台启动:用户输入命令,直接执行程序
后台启动:可以并行执行,在命令行尾加入“&”符号
jobs ——可以查看后台运行的命令列表
fg 1 ——把任务调回前台
ctrl +Z ——放入后台并停止
bg 1 ——开启后台命令
1.2.kill 结束进程
kill 从字面来看,就是用来杀死进程的命令,但事实上,这个或多或少带有一定的误导性。从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。
也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
通式:kill [信号] PID
信号编号 | 信号名 | 含义 |
-0 | EXIT | 程序退出时收到该信息。 |
-1 | HUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。 |
-2 | INT | 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。 |
-3 | QUIT | 退出。 |
-9 | KILL | 杀死进程,即强制结束进程。 |
-11 | SEGV | 段错误。 |
-15 | TERM | 正常结束进程,是 kill 命令的默认信号。 |
1.3.killall
killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。
通式:killall [选项] [信号] 进程名
-i:交互式,询问是否要杀死某个进程;
-I:忽略进程名的大小写;
二、计划任务管理
2.1.at 一次性的计划任务
通式:at + [时间]
at>后面输入指令 然后按ctrl+d 提交
选项 | 效果 |
atq | 查看任务列表 |
atrm +任务列表里的序列号 | 删除序列号的任务 |
2.2.crontab
里面有个服务是默认开启的
systemctl status crond.service
周期性的计划任务
通式:crontab 【选项】
选项 | 功能 |
---|---|
-e | 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。 |
-l | 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。 |
-r | 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。 |
-i | 在删除用户的 crontab 文件时,给确认提示。 |
- 按照预先设置的时间周期(分钟、小时、天、月、周)重复执行指定的命令操作
- 属于周期性计划任务
主要设置文件:
全局配置文件,位于文件: /etc/crontab
系统默认的设置,位于目录: /etc/cron.*/
用户定义的设置,位于文件: /var/spool/cron/用户
项目 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个"*" | 一天当中的第几小时(hour) | 0~23 |
第三个"*" | 一个月当中的第几天(day) | 1~31 |
第四个"*" | 一年当中的第几个月(month) | 1~12 |
第五个"*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
crontab -e
进入 crontab 编辑界面。会打开Vim编辑你的任务
* * * * * 执行的任务
在时间表示中,还有一些特殊符号需要学习
特殊符号 | 含义 |
---|---|
*(星号) | 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。 |
,(逗号) | 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。 |
-(中杠) | 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。 |
/(正斜线) | 代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。 |
注意:在crontab编译中 % 有特殊含义 要加 \ 区分
例:30 2 * * * /bin/cp -a /etc/ /data/etc`date +\%F_\%T`