进程管理和任务计划

前言

在 Linux系统中,进程是程序在操作系统中的运行实例,是系统资源分配和调度的基本单位。理解进程的管理和监控对系统运维、调试和性能优化至关重要。本文主要讲述了进程的状态的查看、进程与程序的关系、进程的删除、进程的停止以及任务的创建。

一、进程管理

进程管理是操作系统管理进程和资源的关键部分。在 Linux 中,进程是系统中所有任务的核心,进程管理命令主要用于查看、控制和调度系统中的进程。

1.1 程序与进程的关系

程序:是存储在硬盘上的可执行代码,像一本书的内容,静态存放在硬盘或其他存储设备上。例如,你下载并安装的一个应用程序(如 firefox )。

进程:是程序在运行时的实例,像是一本书被人打开并阅读时,它在你眼前执行的过程。每当你运行一个程序,操作系统会创建一个进程,分配内存和 CPU 时间来执行这个程序。

举例
程序:你购买的一本电子书,它是存放在你设备里的文件。
进程:你打开这本电子书并开始阅读,操作系统在后台运行着读取文件的程序,显示页面内容。

1.2 父进程与子进程

父进程与子进程
父进程:是创建其他进程的进程,就像一个家长。
子进程:是由父进程创建并执行的独立进程,就像子女一样。

举例
父进程:一家公司的老板(父进程),负责管理和指挥。
子进程:公司的员工(子进程),执行老板指派的任务。

二、 查看进程信息

2.1 静态查看进程信息

① ps
ps概念:ps (process status)命令用于查看系统中当前运行的进程。它显示了与进程相关的信息,如进程 ID(PID)、用户、CPU 和内存使用率等。
命令
ps -aux :显示所有进程,包括其他用户的进程。
在这里插入图片描述
ps -ef :以标准格式显示所有进程。
在这里插入图片描述
ps -aux | grep 目标进程
在这里插入图片描述
输出字段解释:
USER:进程所属的用户。
PID:进程 ID。
%CPU:进程占用的 CPU 百分比。
%MEM:进程占用的内存百分比。
VSZ:进程使用的虚拟内存(单位 KB)。
RSS:进程使用的物理内存(单位 KB)。
STAT:进程的状态,常见状态:R(运行)、S(睡眠)、Z(僵尸)、T(停止)。
START:进程的启动时间。
TIME:进程占用的 CPU 时间。
COMMAND:启动该进程的命令。

注(详解):
STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)。
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态D 不可中断状态.
它们含意如下::
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
D:系统守护进程
动态查看进程信息

2.2 静态查看进程信息

top 命令用于动态显示 Linux 系统中运行的进程和资源使用情况,实时更新显示。
进入top之后,按以下快捷键可以改变排序:
P :按 CPU 使用率排序。
M :按内存使用量排序。
T :按时间排序。
q :退出 top。
1 查看几个cpu
在这里插入图片描述
输出解释:
PID:进程 ID。
USER:启动该进程的用户。
%CPU:进程占用的 CPU 百分比。
%MEM:进程占用的内存百分比。
TIME+:进程累计使用的 CPU 时间。
COMMAND:执行的命令。

2.3 pgrep命令查询进程信息

命令:
1、pgrep -l ————————选项可同时输出对应的进程名以及PID
在这里插入图片描述

2、pgrep -U ————————选项查询特定用户的进程
在这里插入图片描述

2.4 pstree命令以树形结构列出进程信息

1、pstree
在这里插入图片描述

2、pstree -p:选项使用时可以同时列出对应的PID号在这里插入图片描述
3、pstree -u:选项可以列出对应的用户名
在这里插入图片描述
4、pstree -a:选项可以列出完整的命令信息
在这里插入图片描述
在这里插入图片描述

2.5 进程的启动方式

① 手工启动进程
由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否 需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动。

进程在前台运行
(如执行“ls -l”命令)时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。

启动后台进程需要使用“&”操作符,将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。例如,当使 用 cp 命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&” 符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作。
② 调度启动
在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指 定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。
进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。

2.6 进程的前后台调度

① Ctrl+Z组合键
当Linux操作系统中的命令正在前台执行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。例如,打包usr并且调入后台 ,可以按 Ctrl+Z 组合键将该下载任务调入后台并暂停执行。
② jobs 命令
jobs 命令用于查看当前会话中运行的后台任务。
jobs -l :列出当前所有后台任务及其进程 ID。
在这里插入图片描述
③ fg 和 bg 命令
fg +进程编号:将后台任务带回前台执行。
bg +进程编号:将暂停的任务放回后台继续执行。

2.7 终止进程的运行

① Ctrl+C组合键
中断正在执行的命令
② Ctrl+Z与Ctrl+c的联系与区别
Ctrl z:停止前后台进程,还可以继续运行,已完成的数据保存
Ctrl c:Ctrl+终止进程后,进程不可继续,未完成进程中的数据被终止,已传输的数据保存
③ kill 命令
kill 命令用于发送信号给进程,通常用来终止进程。
常用选项:
kill [PID] :正常终止进程。
kill -9 [PID] :强制终止进程(不可恢复)
在这里插入图片描述
④ killall 命令
killall 命令根据进程名称终止进程。
命令:killall 进程
在这里插入图片描述

三、 计划任务管理

3.1 一次性任务:at 命令

at 命令用于设置一次性任务,任务将在指定时间执行。
命令格式
at [HH::MM] [yyyy-mm-dd]
at> [要执行的命令](command)
常用选项:
atq ————————查看待执行任务
atrm 任务编号————————删除待执行任务
例如:在2025年11月8号6点30分计划将hello编辑进a.txt文件(在root目录中)中
at 16:30 2025-11-08
at> echo “hello” > /root/a.txt
at>
Ctrl D 保存任务
在这里插入图片描述

3.2 周期性任务(cron 命令)

cron 用于设置定期执行的任务。用户可以通过 crontab 命令编辑和管理自己的计划任务。
crontab -e ——————进入编辑模式
crontab -l ——————列出当前用户的 cron 任务
crontab -r ——————删除当前用户的所有 cron 任务

编辑命令格式
***** 要执行的命令(command)(一下有路径)(前面的五个符号分别代表分钟、小时、日期、月、星期)

举例:
每周的星期一、三、五的7:00开启firewalld,一直开到晚上20:30
0 7 * * 1,3,5 /usr/bin/systemctl start firewalld
30 20 * * 1,3,5 /usr/bin/systemctl stop firewalld
在这里插入图片描述
在这里插入图片描述

补:
crontab -u 用户名 ————指定XX用户的cron服务
crontab -u zx -l ————列出zx用户下的cron的详细内容
crontab -r ————删除所有用户的cron内容,普通用户执行,只删除自己的cron内容
crontab -r -u zx —————删除zx用户的cron内容

3.3 服务管理

systemctl status crond ————查看crond服务状态
systemctl enable crond ————打开crond开机自启动
systemctl disable crond ————关闭crond开机自启动
systemctl stop crond ————关闭crond服务
systemctl start crond ————开启crond服务
在这里插入图片描述

总结

本文主要讲述了进程的状态的查看、进程与程序的关系、进程的删除、进程的停止以及任务的创建。希望本文能对您有所帮助,谢谢收看😁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值