Linux运维实例 Linux中如何管理进程和计划


前言

在Linux后台运行许多的程序和进程 分管不同的服务。但是程序和进程的关系是什么 进程又是怎么运作的呢 下面就来探讨探讨。

一、程序和进程是什么?

1 程序和进程的定义

程序是保存在硬盘 光盘等介质中的可执行的代码和数据或者文件夹中静态保存的代码 换句话说 程序的文件数据保存在硬盘中 在运行的时候系统就会加载这个程序到后台 供随时调用。程序可以自行控制 来允许开机自启还是不自启。
进程不同于程序 进程是在cpu中以及内存中运行的程序代码 且代码是动态执行的 进程有父进程和子进程 子进程运行在父进程之下。

2 进程与程序的关系

程序是运行在进程之上的 每个程序可以创建一个或多个进程 程序无法脱离进程单独运行 当没有进程的时候 程序运行会创建一个进程来运行。

3 线程

线程是操作系统中能够进行运算调度的最小单位,被包含在进程中,是进程中实际运作的单位 一条进程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

二、查看进程的方法

1.ps命令

用来查看静态的进程统计信息。命令为 ps aux
ps有两种用法 ps aux ps -elf
a表示显示终端上的所有进程,包含其他的用户的进程。
u表示列出进程的所有用户。
x显示所有终端的进程。
在这里插入图片描述
为静态显示进程。
ps -elf
-e为显示系统内核的所有进程信息
-l 使用长格式显示进程信息
-f 使用完整格式显示进程信息。
在这里插入图片描述

在这里插入图片描述

2.top命令

为动态的查看进程排名信息。命令为top
在这里插入图片描述
第一行为任务队列信息 从左到右依次为系统时间 系统已运行时间 当前已运行时长 系统负载 三个数值为1分钟 5分钟 15分钟到现在的平均值。
第二行为进程信息 从左到以此为总进成数 正在运行数 休眠进程数 中止进程数 僵尸进程数
第三行cpu占用情况 用户占用 内核占用 优先级占用 空闲资源看id数 i/o等待占用 硬件中断占用 软件中断占用 虚拟化占用
第四行为内存的信息 总内存空间 空闲内存 已用内存 物理内存和交换内存的缓冲区总和。
第五行为交换分区的信息 总交换空间 空闲空间 已用空间 可用物理空间

在这里插入图片描述
top的常用用法
P 根据cpu使用百分比大小来进行排序
M 根据驻留内存的大小进行排序
N 根据启动时间来排序
c 切换显示命令名称和完整命令行
h 可以获得top程序的在线帮助信息
k 根据提示输入指定进程的pid号按回车中止进程
q 退出top程序
1 查看cpu数量和状态

3 pgrep

根据特定条件查询进程PID信息 命令为pgrep -l 进程名 -u为特定用户 -t为指定终端
-l为显示进程名 缺省时只输出PID号
在这里插入图片描述

在这里插入图片描述

pstree进程树

以树形结构来显示进程信息 命令为pstree -aup
-a为显示完整信息
-u 列出对应的用户名
-p列出对应的PID号
在这里插入图片描述

三、进程的启动方式

分为两种 手动启动和调度启动

手动启动

手动启动又分为前台启动和后台启动
前台启动:输入指令,直接执行程序
后台启动:在命令行尾加入&符号
例如我复制一个文件到另一个目录 但是文件较大 这时就可以使用&来进入后台启动和运行了
在这里插入图片描述
输出为后台的任务序号和PID号 这样可以让他进行自己操作 节省时间去做其他时间

进程的前后台调度

ctlc+z挂起进程
还可以使用jobs命令,来查看后台的任务列表 fg名令来恢复到前台运行

在这里插入图片描述
在这里插入图片描述

中止命令运行

可以使用CTRL+c 和kill指令
组合键用于中断执行的命令 kill killall命令用于中止指定的进程
kill可以指定PID号的进程
killall用于中止指定名称相关的所有进程
-9选项表示强制中止(慎用)
在中止一个进程运行的时候 可以用ctrl+c来终止。例如使用ping命令时 就可以结束ping包
在这里插入图片描述
此时处于长ping状态

在这里插入图片描述
结束命令
jobs 列表下有多个命令
在这里插入图片描述
kill指令
在这里插入图片描述
但是显示未杀死 可以使用-9来杀死 但是要慎用

在这里插入图片描述
killall可以杀死全部进程 但是要先查找一下进程 避免误杀
pkill可以根据条件来杀死进程 命令为pkill -u 用户民 -u表示结束和用户名对应的相应进程。-t是表示跟终端对应的程序。
在这里插入图片描述
这里显示用户模式下没有进程
在这里插入图片描述
切换之后显示有一个bash进程
来pkill杀死这个进程
在这里插入图片描述
在这里插入图片描述

四 计划任务管理

at命令

用于一次性计划执行任务 比如我设置22:00重启 就可以使用at
命令格式为at 小时:分钟 年-月-日 如果缺省就是自动默认为当天
在这里插入图片描述
在命令输入完后要CTRL+d提交
在这里插入图片描述
查看任务
删除任务 可以只用atrm 序号 是序号不是个数
在这里插入图片描述

crontab

at是一次性的任务 crontab是周期任务
按照预先设置的时间周期(分钟 小时 天 月 周)周期性的执行设定的指令
属于周期性计划任务
主要的匹配文件
1 全局配置文件 文件位于/etc/crontab
2 系统配置文件 位于目录 /etc/cron.*/
3用户定义的设置 位于文件/var/spoot/cron用户名
命令格式为 crontab 选项 [-U 用户名] -U缺省时默认当前用户
常用选项有-e -f -r
-e表示编辑任务
-f表示查看任务
-r表示删除任务
时间的格式
*表示该范围内的任意时间
,表示间隔的多个不连续的时间点
-表示一个连续的时间范围
/表示指定间隔的时间频率
命令时间配置格式
分钟 小时 日期 月份 年份 +要执行的命令
在这里插入图片描述
用crontab -e来执行定时任务
在这里插入图片描述

这里编辑的是每个月的15号7:30执行ls命令
如果取消这个命令 就要用crontar -r 进入后把命令注释掉即可 在前面+#号
但是注意 想要执行周期命令 必须要保证crontar的服务是打开的,否者编辑的命令是无法执行的
在这里插入图片描述

图中状态为running就是打开状态。

猜你喜欢

转载自blog.csdn.net/weixin_49172531/article/details/113739418