当前位置: 首页 > news >正文

八、Linux进程和计划任务管理

目录

  • 1、进程管理
    • 1.1、进程介绍
    • 1.2、查看系统进程信息
      • 1.2.1、ps
      • 1.2.2、top
      • **1.2.3、pgrep**
      • 1.2.4、pidof
      • 1.2.6、pstree
    • 1.3、杀死进程
      • 1.3.1、kill
      • 1.3.2、killall
      • 1..3.3、pkill
    • 1.4、进程的启动方式
      • 1.4.1、手工启动进程
      • 1.4.2、调度启动进程
    • 1.5、进程挂起和恢复
    • 1.6、不间断运行进程
  • 2、计划任务管理
    • 2.1、一次性计划任务
      • 2.1.1、创建一次性计划任务
      • 2.1.2、控制at使用
    • 2.2、周期性计划任务
      • 2.2.1、/etc/crontab文件实现任务计划
      • 2.2.2、使用crontab命令实现任务计划
      • 2.2.3、恢复丢失的crontab文件
      • 2.2.4、控制使用crontab

1、进程管理

1.1、进程介绍

Linux是一个多用户、多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux系统可以同时执行几个任务,它可以在还未执行完一个任务时又执行另外一个任务,操作系统管理多个用户的请求和多个任务。
Linux系统上所有运行的内容都可以称为进程。每个用户任务、每个系统管理守护进程都可以称为进程。进程与程序之间还是有明显区别的。程序只是一个静态的命令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。一个程序可以启动多个进程。进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。
进程具有以下特征。
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生、动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行。
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
异步性:由于进程间的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
结构特征:进程由程序、数据和进程控制块三部分组成。
在Linux系统中有以下三种进程。
交互式进程:一个由Shell启动并控制的进程,交互式进程既可在前台运行,也可在后台运行。
批处理进程:与终端无关,安排在指定时刻完成的一系列进程。
守护进程:在引导系统时启动,以执行即时的操作系统任务,如crond、rsyslogd、named等。

1.2、查看系统进程信息

查看Linux系统中的进程信息,可以使用ps、top、pgrep、pidof和pstree等命令

1.2.1、ps

介绍
ps命令是Linux和Unix系统中用于展示当前系统中活动进程的一个命令工具。通过使用ps命令,你可以查看关于当前运行的进程的信息,比如进程ID(PID)、正在运行的命令、CPU使用率、内存使用率等。
基本用法
ps:显示当前终端会话中的活动进程。
ps ax:显示所有进程的列表。
ps aux:显示所有进程的详细列表,包括用户、CPU和内存使用率等信息。
ps -ef:使用全格式显示所有进程,这与aux选项类似,但格式略有不同。
常用选项
-e 或 --all:显示所有进程。
-f:显示完整格式。
-u 用户名:显示指定用户的进程。
–sort:根据指定的关键字排序,例如–sort=-%mem按内存使用率降序排列。
-p PID:根据进程ID查看进程信息。
示例

1、查看所有进程及其详细信息:
ps aux
2、查看特定用户(例如用户名为john)的所有进程:
ps -u john
3、根据PID(假设为1234)查看进程信息:
ps -p 1234
4、查看系统中消耗内存最多的10个进程:
ps aux --sort=-%mem | head -10

输出字段解释
常见的字段及其描述:
PID:进程ID,唯一标识一个进程。
TTY:终端类型,进程与之关联的终端。
TIME:CPU时间,该进程占用的处理器时间。
CMD:命令名称/执行的命令行,启动进程时使用的命令。
USER:进程所有者的用户名。
%CPU:进程占用的CPU百分比。
%MEM:进程占用的物理内存百分比。
VSZ:虚拟内存大小,单位为KB。
RSS:Resident Set Size,进程占用的非交换物理内存大小,单位为KB。
STAT:进程状态。常见状态有:
R(运行中)
S(睡眠中)
T(停止状态)
Z(僵尸进程)
D(不可中断睡眠状态)
START:进程启动时间或启动日期。
NI:nice值,表示进程优先级的调整值。
PPID:父进程ID,即启动该进程的进程的ID。

1.2.2、top

介绍
top命令是Linux和Unix系统中用于实时显示系统进程和资源使用情况的工具。它提供了一个动态更新的视图,展示了CPU、内存使用情况以及系统上最消耗资源的进程。top命令非常适合于监控系统的实时性能和资源使用情况。
基本用法
启动top命令非常简单,只需在终端中输入top,然后按回车键。默认情况下,top会按照CPU使用率排序进程,最顶部的进程是当前使用CPU最多的进程。
主要显示区域
top命令的输出大致可以分为两部分:
系统概览:显示在屏幕的上方,提供了CPU、内存(物理内存和交换空间)和系统运行时间等信息。
进程列表:显示在屏幕的下半部分,列出了当前系统上的活动进程,通常按照某种资源使用情况(如CPU或内存)进行排序。
主要字段解释
PID:进程ID。
USER:运行该进程的用户。
PR:进程优先级。
NI:nice值,影响进程调度优先级的值。
VIRT:虚拟内存使用量。
RES:常驻内存使用量。
SHR:共享内存大小。
S:进程状态(例如,S代表睡眠,R代表运行中)。
%CPU:进程占用的CPU百分比。
%MEM:进程占用的物理内存百分比。
TIME+:进程占用CPU的总时间。
COMMAND:启动进程的命令名称或命令行。
交互命令
在top运行时,你可以使用一些交互命令来改变显示或对进程进行操作:
h 或 ?:显示帮助。
k:终止一个进程。系统将提示你输入想要终止的进程ID(PID)和信号。
P:按CPU使用率排序。
M:按内存使用率排序。
T:按时间/累计时间排序。
f:选择要显示的字段。
q:退出top。
top命令输出信息描述
top命令输出信息统计信息区前五行是系统整体的统计信息,主要显示任务队列、进程、CPU、内存和swap等信息。
任务队列信息
系统时间:当前的系统时间。
运行时间:系统自上次启动以来已经运行了多长时间。
用户数:当前登录到系统的用户数量。
系统负载:显示过去1分钟、5分钟和15分钟的平均系统负载。系统负载表示的是系统工作的繁忙程度,即平均活跃进程数。数字越高,表示系统越繁忙。
进程信息
总进程数:系统中总的进程数。
运行中的进程数:当前正在运行的进程数。
休眠中的进程数:当前处于睡眠状态的进程数。
停止的进程数:被停止或暂停执行的进程数。
僵尸进程数:已结束但其父进程尚未对其进行处理(如读取其退出状态)的进程。
CPU信息
用户空间占用百分比:执行用户级进程的时间百分比。
系统空间占用百分比:在内核级别执行的时间百分比,不包括优先级调整和等待I/O的时间。
优先级调整时间百分比:改变进程优先级所花费的时间百分比。
空闲时间百分比:CPU处于空闲状态的时间百分比,没有执行任何任务。
内存信息
物理内存总量:系统的总物理内存量。
已使用的物理内存量:已被使用的物理内存量,包括所有缓存和缓冲区。
空闲物理内存量:当前未被使用的物理内存量。
缓冲区使用量:由内核缓冲区使用的内存量。
swap信息
交换区总量:系统交换区(虚拟内存)的总量。
已使用的交换区量:已被使用的交换区量。
空闲交换区量:当前未被使用的交换区量。
缓存使用量:用作缓存或临时存储交换数据的内存量。

1.2.3、pgrep

介绍
pgrep 是一个在 Unix 和Linux 系统中使用的命令行工具,用于根据进程的名称或其他属性查找进程。pgrep 的名称来源于 “process grep”,意味着它可以根据用户提供的模式来搜索当前运行的进程列表,并输出匹配进程的进程标识符(PID)。这个命令特别有用于自动化脚本和系统管理中,允许管理员快速找到特定的运行进程。
基本用法
查找进程名: pgrep process_name,这将列出所有名为 process_name 的进程的 PID。
使用选项: pgrep 支持多种选项来精确化搜索条件。例如:
-u 用户名或用户ID,用于查找属于特定用户的进程。
-l 不仅返回 PID,还返回进程名。
-f 允许使用完整的命令行进行搜索,而不仅仅是进程名。
示例
查找所有 SSH 进程: pgrep ssh
查找属于特定用户的进程: pgrep -u username
查找并显示进程名: pgrep -l nginx
使用完整命令行搜索进程: pgrep -f “/usr/bin/python my_script.py”
pgrep 是一个强大的工具,

http://www.xdnf.cn/news/594163.html

相关文章:

  • 【Dify学习笔记】:dify通过ollama加载DeepSeek-R1-32B模型无法加载!终于解决了!!
  • C++ QT生成GIF,处理原始图像RGBA数据,窗口生成简单的动画
  • 练习小项目7:天气状态切换器
  • db_ha执行ha_isready报错authentication method 13 not supported
  • 同步/异步电路;同步/异步复位
  • 从法律视角看湖北理元理律师事务所的债务优化实践
  • Qt5、C++11 获取wifi列表与wifi连接
  • vue3商城类源码分享 期末作业 注册登录,状态管理,搜索,购物车订单页面
  • v3.0 YOLO篇-如何通过YOLO进行实验
  • Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?
  • 比较连续型自变量和从连续型变量转换成了三分类变量的因变量的关系
  • Gitee PPM:智能化项目管理如何重塑软件工厂的未来格局
  • Scaled Dot-Product Attention 中的缩放操作
  • Spring Cloud生态与技术选型指南:如何构建高可用的微服务系统?
  • C语言:gcc 或 g++ 数组边界检查方法
  • 山东大学软件学院创新项目实训开发日志——第十二周
  • 2021~2025:特斯拉人形机器人Optimus发展进程详解
  • UV-python环境管理工具 入门教程
  • 时源芯微|电源、地线的处理
  • 技术篇-2.4.Python应用场景及开发工具安装
  • JMeter JDBC请求Query Type实测(金仓数据库版)
  • springboot3+vue3融合项目实战-大事件文章管理系统-本地存储及阿里云oss程序集成
  • 一文读懂Agent智能体,从概念到应用—Agent百科
  • GTM4.1-SPE
  • spring+tomcat 用户每次发请求,tomcat 站在线程的角度是如何处理用户请求的,spinrg的bean 是共享的吗
  • 练习写作对口语输出有显著的促进作用
  • Zephyr OS 中的互斥信号量
  • 高等数学-微分
  • SDWebImage源码学习
  • 容器资源绑定和查看