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

7.Linux :进程管理,进程控制与计划任务

Linux :进程管理,进程控制与计划任务

一、进程管理

1. 进程与程序
  • 程序:静态的可执行文件(存储于磁盘)。
  • 进程:动态执行的程序实例(占用CPU/内存)。
2. 查看进程
命令作用常用组合
ps静态查看进程ps -aux(所有进程)
top动态监控进程(实时刷新)top -d 5(5秒刷新)
pgrep -l 名称按名称查进程PIDpgrep -l nginx
pstree -p树形显示进程层级(含PID)`pstree -p

关键字段解析top/ps):

  • STAT状态:R(运行)、S(休眠)、Z(僵尸)、D(不可中断)、+(前台进程)。
  • NI值:进程优先级(-20~19,值越小优先级越高)。
  • %CPU/%MEM:CPU/内存占用率。
3. 控制进程
  • 前后台切换

    command &       # 后台启动
    Ctrl + Z        # 挂起到后台(暂停状态)
    jobs -l         # 查看后台任务
    fg %1           # 恢复1号任务到前台
    bg %1           # 后台继续运行1号任务
    
  • 终止进程

    kill PID        # 优雅终止
    kill -9 PID     # 强制终止
    killall 名称    # 终止同名所有进程
    pkill -U 用户   # 终止某用户的所有进程
    

二、计划任务

1. 一次性任务(at)
at 14:30 2025-4-20   # 设置任务时间
at> echo "new earth kami!" > /tmp/msg
at> Ctrl+D             # 保存退出
atq                   # 查看任务队列
atrm 任务号           # 删除任务
2. 周期性任务(cron)
  • 配置文件

    • 系统任务:/etc/crontab
    • 用户任务:/var/spool/cron/用户名
  • 时间格式

    *   *   *   *   *   <命令>
    分  时  日   月  周
    

    到用 - 和用, 每隔用/ 未提及用 * (1到3点,1-3,1点和3点,1,3,每隔两分钟*/2 )

  • 管理命令

    crontab -e      # 编辑当前用户任务
    crontab -l      # 查看任务列表
    crontab -r      # 删除所有任务
    
3. 关键示例
# 示例1:每天14:23输出"RHCSA"
23 14 * * * /bin/echo "RHCSA"# 示例2:每月1-5号14:00-17:00,每10分钟执行
*/10 14-17 1-5 * * /bin/echo "I Love Galaxy"

三、补充重要知识点

1. 僵尸进程处理
  • 原因:子进程结束但父进程未回收资源。
  • 解决
    1. 终止其父进程:kill -9 父进程PID
    2. 系统自动回收(若父进程为init)。
2. 进程优先级调整
  • 启动时指定优先级:

    nice -n -20 command  # 最高优先级(-20)
    
  • 调整运行中进程:

    renice -n 10 -p PID  # 将PID进程优先级改为10
    
3. Cron环境变量问题
  • 问题:cron任务可能缺少环境变量(如PATH)。
  • 解决
    1. 在脚本中设置变量(如 export PATH=/usr/bin:/bin)。
    2. 使用绝对路径执行命令。
4. Cron权限控制
  • 白名单/etc/cron.allow(存在时仅允许列表用户)。
  • 黑名单/etc/cron.deny(拒绝列表用户)。
http://www.lryc.cn/news/604622.html

相关文章:

  • LLM—— 基于 MCP 协议(Streamable HTTP 模式)的工具调用实践
  • 【拓扑排序】P2403 [SDOI2010] 所驼门王的宝藏|省选-
  • Redis学习------缓存雪崩
  • 01初识算法:从零开始的思维之旅
  • 【Spring Cloud】Spring Cloud 跨域解决方案深度剖析与工程实践指南(万字详解)
  • docker 安装elasticsearch
  • uniapp中的$vm
  • LeetCode 56 - 合并区间
  • 7. 传输层协议 TCP
  • 关系型数据库架构最优选择:基于落霞归雁思维框架的分析
  • 15.11 单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB
  • 10 分钟上手 Elasticsearch 语义搜索(Serverless Cloud 本地双版本教程)
  • 基因组选择育种-2.1.最佳线性无偏估计
  • GitHub使用小记——本地推送、外部拉取和分支重命名
  • RPA软件推荐:提升企业自动化效率
  • STM32学习记录--Day3
  • IPEmotion数据采集软件功能介绍
  • 【n8n】如何跟着AI学习n8n【02】:基础节点学习
  • Java面试宝典:MySQL InnoDB引擎底层解析
  • 5.Origin2021如何绘制柱状+折线双Y轴图?
  • 51单片机外部引脚介绍
  • 影视级 3D 特效的软件工具链:从概念到成片的全流程解析
  • LAMP及其环境的部署搭建
  • 逻辑回归:从线性回归到分类决策的演化
  • Spring Boot音乐服务器项目-查询喜欢的音乐模块
  • .clang-format的作用是什么,什么情况下会生效
  • 常见cms里面的几个cms框架的webshell方法(wordpress,dedecms,phpmyadmin,pageadmin)
  • 91-基于Spark的空气质量数据分析可视化系统
  • neovim 怎么调用 clang-format进行格式化
  • 常⻅CMS漏洞