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

Linux中的进程管理------ps,job

什么是进程?

进程是正在执行的程序的实例。每个进程都有独立的地址空间、资源分配和执行状态。理解进程管理是Linux系统管理的核心技能。

进程与程序的区别

  • 程序:存储在磁盘上的可执行文件(静态)

  • 进程:程序在内存中的执行实例(动态)


进程查看命令:ps

ps是查看进程常用的工具,不过他是查看进程瞬间的状态,不能实时监控

ps aux #查看命令最全面的命令
#另一种形式:
ps -ef
#自定义字段查看
ps -o pid #只查看pid这个参数

参数详解:

a  #显示所有终端进程
u  #显示用户相关信息
x  #显示与终端无关的进程
ps aux #显示所有进程信息

实战示例:

输出字段解析:

  • USER:进程所有者

  • PID:进程ID(唯一标识)

  • %CPU:CPU使用百分比

  • %MEM:内存使用百分比

  • VSZ:虚拟内存大小(KB)

  • RSS:物理内存大小(KB)

  • TTY:关联的终端

  • STAT:进程状态

  • START:启动时间

  • TIME:累计CPU时间

  • COMMAND:命令名称

进程状态(STAT)详解:

  • R:运行中或可运行

  • S:可中断的睡眠状态

  • D:不可中断的睡眠状态

  • T:已停止

  • Z:僵尸进程

  • <:高优先级

  • N:低优先级

  • I:休闲状态

free-内存信息查看

free -h #可读模式,推荐
#指定单位
free -m #MB
free -g #GB

free运行实例:

free结果字段详解:

第一行:表头

这一行描述了下面每一列数据的含义。

  • total:内存总量。

  • used:已使用的内存。

  • free:完全未被使用的内存。

  • shared:主要被tmpfs(临时文件系统)使用的内存。

  • buff/cache:被内核缓冲区(buffer)和页面缓存(cache)占用的内存。

  • available:估算的、可供应用程序使用的内存大小(这是关键指标!)。

第二行:物理内存

第三行:交换空间(Swap)

Swap 是硬盘上的一块区域,当物理内存不足时,系统会将内存中不常用的数据暂时挪到 Swap 中,从而为急需内存的程序腾出空间。

注:如果userd这个值持续增长,说明物理内存已经不足,系统开始频繁使用硬盘来交换数据,这会严重拖慢系统性能。

Linux实时监控进程--top

我之前有博客专门说过这个进程了,感兴趣的可以看一下


进程控制实战:

jobs----查看后台运行作业

# 基本语法
jobs [选项]# 常用选项
jobs -l    # 显示详细信息(包括进程ID)
jobs -p    # 只显示进程ID
jobs -r    # 只显示运行中的作业
jobs -s    # 只显示暂停的作业

实例:

输出解读:

  • [1]:作业号,用 %1 引用

  • - / ++表示当前作业,-表示前一个作业

  • 1841:进程ID

  • running:作业状态(running-运行中, stopped-已暂停)

  • &:不是命令参数,而是shell的特殊符号,表示"在后台运行此命令"

fg - 前台恢复作业

# 基本语法
fg [%作业号]# 示例
fg %1        # 将作业1调到前台
fg           # 不指定作业号时,操作当前作业(带+号的)

实例:

Ctrl+Z - 暂停进程

# 使用方法:在前台运行程序时按下
vim file.txt    # 启动vim
Ctrl+Z          # 暂停vim,返回shell

实例:

bg - 后台继续运行:

# 基本语法
bg [%作业号]# 示例
bg %1        # 让作业1在后台继续运行
bg           # 让当前作业在后台继续运行

实例:

这是我用刚刚的命令做的例子

为什么需要 jobs?—— “作业控制” 的价值

jobs 命令是 Shell “作业控制” 功能的一部分,它的存在是为了让你能方便地管理你在当前这个终端窗口里启动的任务

举例:

想象一下这个非常常见的场景:

  1. 你在终端里启动一个耗时很长的任务,比如 tar -czf backup.tar.gz /large_directory

  2. 它运行了很久,你等不及了,想先做点别的事情。

  3. 你按下 Ctrl + Z。这个命令会暂停 前台任务。

  4. 现在,你的命令行回来了。你可以运行其他命令,比如 lscat 等。

  5. 此时,你怎么知道刚才那个压缩任务怎么样了?

    • 你用 ps aux | grep tar?可以,但你需要记住命令名,而且输出里会混杂其他用户的 tar 进程,很不方便。

    • 你输入 jobs 它会立刻显示:

      [1]+  Stopped                 tar -czf backup.tar.gz /large_directory

      清晰明了地告诉你,作业编号 [1] 是暂停状态。

  6. 现在你想让它继续在后台运行,不占用你的命令行。你只需要输入:bg %1

  7. 再用 jobs 查看,状态变成了 Running

    [1]+ Running tar -czf backup.tar.gz /large_directory &

  8. 过了一会儿,你又想把它调回前台看看进度,输入 fg %1

在这个完整的流程中,jobsbgfg 命令构成了一个完美的闭环,让你能轻松地在同一个会话中管理多个任务。

表格对比:

特性ps aux (Process Status)jobs (Shell Jobs)
查看范围整个系统的所有进程,无论由谁启动。当前 Shell 会话直接启动或控制的后台任务(作业)。
所属关系与当前 Shell 无关。可以看到其他用户、其他终端启动的进程。严格属于当前这个 Shell。你在这个终端里启动的任务。
信息详细度非常详细。PID、用户、CPU/内存占用、启动命令、状态等。非常简洁。作业编号、状态、启动的命令。
主要用途系统监控、进程管理。查看所有进程的资源占用,定位问题,用 kill 结束进程。作业控制。在同一个终端会话内,管理前后台任务的切换、暂停、恢复。
依赖关系进程之间是独立的(虽然有父子关系)。作业与当前 Shell 强关联。如果关闭这个终端,这些作业通常会收到 SIGHUP 信号而终止。

注:

  jobs 不是 ps 的简化版,而是 ps 的“场景特化版”

        jobs只负责当前终端会话窗口,ps负责所有用户管理

                               

http://www.dtcms.com/a/471054.html

相关文章:

  • 做网站建设的公司有哪些方面自己免费怎么制作网站吗
  • 内网穿透的多种使用场景:远程办公、IoT 设备管理全解析
  • 开源手机网站cms网页优化公司
  • QWidget实现文本选中与复制功能
  • 宁晋企业做网站专门做养老院的网站
  • 网站广告素材网站管理员怎么做联系方式
  • 演化搜索与群集智能:五种经典算法探秘
  • 2.2基本数据类型
  • 新手小白,想看懂任何交易平台的交易
  • seo的网站特征全网营销系统是不是传销
  • 灯饰外贸网站青岛软件开发公司排名
  • A Density Clustering-Based CFAR Algorithm for Ship Detection in SAR Images
  • 初识RL(Reinforcement Learning,强化学习)
  • 自己做网站需要学什么软件下载云主机有什么用
  • 网站名称可以更换吗网络营销方式如何体现其连接功能及顾客价值
  • 天府新区规划建设国土局网站黑彩网站怎么建设
  • 百度网站收录提交做出网站
  • 记录两种好用常用的xpath定位方式
  • 怎么选一个适合自己的网站国外建站网址
  • 国外主题网站seo最新快速排名
  • 网站类型定位分析网站建设160页答案
  • spring webflux
  • 福永网站设计设计常用网站
  • 如何免费建设自己稳定的网站网络班级网站建设
  • 命名管道 vs 匿名管道的内核缓冲区区别
  • 基于MATLAB生成雷达脉冲信号
  • 百度网盘 13.11.4 | 支持倍速播放,去除广告及冗余功能,界面简洁,体积小巧
  • 牛客算法_数组
  • 怎样建立自己购物网站阿里云gpu服务器租用费用
  • 浙江省网站备案时间手机网站开发 宽度