进程和计划任务-------后续(二)
一、进程管理
1.进程启动----------?前台启动与后台启动
?进程需要手动启动
?前台启动(运行):通过终端启动,且启动后一直占据终端(影响当先终端的操作)
?后台启动:可通过终端启动,但启动后即转入后台运行(释放终端),不影响当前终端的操作。
进程需要手动启动,启动后一般分为前台和后台,前台运行会一直占用终端,直到运行结束,影响
当前操作,那么把命令放入后台启动,会立即释放终端就会方便很多。
第一种把命令放入后台的方法是在命令后面加入
空格 &?
使用这种方法放入后台的命令,在后台处于执行状态。注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的
?空格?&? 把命令放入后台
Ctrl + Z 组合键:将当前进程挂起,即调入后台并停止执行
jobs?查看后台任务列表? ? ?-l? 显示PID号
fg?命令 : 将后台进程调回到前台运行,可指定任务序列号
格式: fg? 编号
bg?命令: 将后台程序继续在后台运行
"命令 &",把命令放入后台执行
jobs?查看后台任务列表?
fg?命令 : 将后台进程调回到前台运行
bg?命令: 将后台程序继续在后台运行
实验1:
先运行两个程序:
实验2:
二、结束进程
1. kill
从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。
也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
格式:kill [信号] PID?
kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID
读者可以使用 kill -l 命令查看所有信号及其编号
2. killall?
killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用
语法:killall 【选项】【信号】 进程名
作用:结束该进程名的所有进程
-i:表示会寻问,-l:忽略大小写
killall -i sshd? ? ? ? 交互杀死 sshd
三、计划任务
1.? at? ? 设置一次性计划任务
at? 队列存放在/var/spool/at目录中
格式:at? 时间
at [option] TIME
at [选项] [时间]
[HH:MM] ?[yyyy-mm-dd]HH:MM 在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务
02:00 ???? ? ? ? ??
HH:MM YYYY-MM-DD ??规定在某年某月的某一天的特殊时刻进行该项任务
02:00 2023-10-20 ??
HH:MM[am|pm] [Month] [Date]
06pm March 17
17:20 tomorrow
HH:MM[am|pm] + number [minutes|hours|days|weeks], 在某个时间点再加几个时间后才进行该
项任务
now + 5 min?
02pm + 3 days
ctrl+d? ? ?提交任务
atrm [工作号]? ?删除指定的at任务
atq 查看一次性任务列表
2. crontab周期性的计划任务
crontab是Linux系统中用于配置和管理定时任务的命令,通过crontab,用户可以定义计划在特定时间或周期性执行的任务。
①定时性周期任务:crontab是一个服务。
②配置文件路径:/etc/crontabs 文件中有创建规则,如下图。
crontab? -e? ? 编辑计划任务
crontab? -l? ? ?查看计划任务
crontab? -r? ? ?删除计划任务
- e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。 - l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。 - r 从 /var/spool/cron 删除某用户的 crontab 文件 - i 在删除用户的 crontab 文件时,给确认提示
?*****? ?绝对路径
which? 命令? ?查看绝对路径
注意:这五个必须要有 ( 分时日月周)
每月的 1号 15号 ?30号
*? * ? 1,15,30 ?*? ?*中午 ?12点 ?- ?16点?
* ?12-16? * ?* ?*每 ?半小时 执行 ?一次
*/30 ?* ? *? *? ?*在时间表示中,还有一些特殊符号需要学习
crontab任务中不建议使用%,它有特殊用途,它表示换行的特殊意义,且第一个%后的所有字符串会被将成当作命令的标准输入,如果在命令中要使用%,则需要用 \ 转义
注意:将%放置于单引号中是不支持的? ? ? 解决方法:在所有的%前\即可
在书写 crontab 定时任务时,需要注意以下几个事项:
1.? 6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。
2.? ? crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
3.? ? 在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
4.? ? 在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
四、面试题:
1.如何进行系统的优化
1.关闭不必要的开机自启动程序
2.禁止使用超级管理员
3.使用国内的yum源
4.内核调优:
1.开启路由转发功能
2.tcp链接数
5.关闭核心防护 selinux
2.运维需要关注五大性能以及如何看
①内存:free -h 、top
②cpu使用率:top动态 、 ps aux静态、ps -elf、vmstat
③磁盘容量:剩余容量 df -h、分区 lsblk、详细 fdisk -l +设备名
④查看磁盘io即读写性能:vmstat、iotop(需要安装)、iostat(-d指定硬盘)、dd。input代表往磁盘写,output从磁盘复制出来。
⑤查看网卡流量:iftop(需要安装扩展包再安装) -ni再加网卡名
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!