进程和计划任务-------后续(二)

2024-01-08 03:04:08

一、进程管理

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再加网卡名
?

文章来源:https://blog.csdn.net/zzzxxx520369/article/details/135390648
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。