深入理解Linux进程管理:从基础到高级操作指南

news2025/3/13 7:27:36
1. 进程的定义、组成和环境
什么是进程?

想象你的电脑是一个大工厂,进程就是工厂里正在运行的机器。每个机器(进程)都有自己的任务,比如一台机器负责打印文件,另一台负责播放音乐。

  • 进程的组成

    • 代码:机器的操作说明书(程序的代码)。

    • 数据:机器当前使用的原材料(程序运行时需要处理的数据)。

    • 运行状态:机器是否在运行、暂停或故障(如 CPU 寄存器、内存地址)。

  • 进程环境
    每台机器需要特定的环境才能工作,比如电力、温度。进程的环境包括:

    • 环境变量:全局配置参数(如 PATH 指定去哪里找工具)。

    • 文件描述符:机器与外界的连接管道(如打开的文件、网络连接)。


2. 如何理解 systemd 进程?
  • systemd 是 Linux 系统的“工厂总控中心”。

    • 作用:它是系统的第一个进程(PID=1),负责启动和管理所有其他进程(服务)。

    • 类比:工厂的调度员,决定哪些机器先启动、如何重启故障机器。

  • 常见操作

    systemctl start nginx    # 启动 Nginx 服务(启动一台新机器)  
    systemctl stop nginx     # 关闭 Nginx 服务  
    systemctl enable nginx   # 开机自动启动 Nginx  

3. ps 和 top 有什么区别?
  • ps:给工厂拍一张“静态照片”,显示当前所有机器的状态快照。

    • 特点:一次性输出,适合查看特定时刻的进程信息。

  • top:实时监控工厂的“实时视频”,动态显示进程状态(如 CPU、内存占用)。

    • 特点:持续更新,适合观察资源使用情况。

通俗总结

  • ps 是“查档案”,top 是“看直播”。


4. ps aux 和 ps -ef 的作用
  • ps aux

    • 参数含义

      • a:显示所有用户的进程。

      • u:显示详细信息(如 CPU、内存占用)。

      • x:包括没有控制终端的进程(如后台服务)。

    • 输出示例

      USER   PID %CPU %MEM VSZ   RSS TTY  STAT START TIME COMMAND  
      root   1   0.0  0.1 12345 678 ?    Ss   10:00 0:01 /sbin/init  
  • ps -ef

    • 参数含义

      • -e:显示所有进程。

      • -f:显示完整格式(如父进程 PID)。

    • 输出示例

      UID   PID PPID C STIME TTY    TIME CMD  
      root   1    0 0 10:00 ?     00:00:01 /sbin/init  

核心区别

  • ps aux 侧重资源占用,ps -ef 侧重进程关系(如父子进程)。


5. 进程状态有哪些?

在 ps 或 top 的 STAT 列中,进程状态用单个字母表示:

  • R(Running):正在运行或等待 CPU(绿灯行)。

  • S(Sleeping):睡眠中,等待事件唤醒(如等待输入)。

  • D(Uninterruptible Sleep):深度睡眠,不可被唤醒(如等待磁盘 I/O)。

  • T(Stopped):被信号暂停(如按 Ctrl+Z)。

  • Z(Zombie):僵尸进程,已结束但未被父进程回收(工厂垃圾未清理)。

通俗理解

  • 进程像交通信号灯,不同状态决定它是否能继续运行。


6. 作业和作业控制
  • 作业(Job):用户启动的一个或多个关联进程(如一条命令 sleep 100 & 就是一个作业)。

  • 作业控制:管理前台和后台任务。

常用操作

  • &:后台运行作业(机器在后台默默工作)。

    sleep 100 &  # 后台运行 sleep  
  • Ctrl+Z:暂停当前作业(把机器临时关机)。

  • jobs:查看当前所有作业。

  • fg %1:将作业 1 调到前台(重新启动机器)。

  • bg %1:让作业 1 在后台继续运行。


7. kill 命令中信号 9 和 15 的区别
  • SIGTERM(15):礼貌地请求进程终止(默认信号)。

    • 作用:进程可以“收拾行李”再退出(如保存文件、关闭连接)。

    • 命令kill -15 PID

  • SIGKILL(9):强制终止进程(不给任何反应时间)。

    • 作用:直接拔电源,可能导致数据丢失。

    • 命令kill -9 PID

使用建议

  • 优先用 SIGTERM,若进程无响应再用 SIGKILL


8. TTY 终端是什么?
  • TTY(Teletype):早期的物理终端设备(像打字机),现代指虚拟终端或终端模拟器。

  • 查看进程的 TTY

    ps aux | grep nginx  
    • ? 表示没有关联终端(通常是后台服务)。

    • pts/0 表示伪终端(如 SSH 连接的终端)。


9. 显式发送信号的其他方式

除了 kill,还可以通过以下方式发送信号:

  • killall:通过进程名发送信号。

    killall -9 nginx  # 强制终止所有 nginx 进程 
  • pkill:通过模式匹配进程名。

    pkill -f "python script.py"  
  • 键盘快捷键

    • Ctrl+C:发送 SIGINT(终止前台进程)。

    • Ctrl+Z:发送 SIGTSTP(暂停前台进程)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2314165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

江科大51单片机笔记【11】AT24C02(I2C总线)

一、存储器 1.介绍 RAM的特点是存储速度特别快,但是掉电会丢失;ROM的特点是存储速度特别慢,但是掉电不会丢失 SRAM是所有存储器最快的,一般用于电脑的CPU高速缓存,容量相对较少,成本较高;DRAM…

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

Docker容器安装软件(完整版)

文章目录 一、安装Docker1.1 docker 相关的命令1.2 配置镜像加速 二. 安装es2.1 创建网络2.2 拉取镜像2.3 创建挂载点目录2.4 部署单点es&#xff0c;创建es容器2.5 编写elasticsearch.yml2.6 重启es容器2.7 测试Elasticsearch是否安装成功 三. 基于Docker安装Kibana3.1 拉取镜…

「 机器人 」扑翼飞行器通过总气动力控制四自由度运动方法

一、前言 在扑翼飞行中,总气动力(Total Aerodynamic Force)是指扑翼在运动过程中受到的所有空气动力作用的合力。它是由以下两种主要力的合成结果: 1. 升力(Lift, ):垂直于空气流方向的力,用于支持飞行器(或生物)的重量。 2. 阻力(Drag, ):平行于空气流方向的力,…

Axios简单说明,快速上手

Ajax&#xff1a;异步的JavaScript和XML 作用&#xff1a; 数据交换异步交互 Axios&#xff1a;就是对原生Ajax进行封装&#xff0c;简化书写&#xff0c;快速开发 使用逻辑&#xff1a; 首先要安装Axios&#xff0c;可以通过npm在项目中安装&#xff1a; 打开命令行工具…

云服务器安装宝塔面板部署

单机部署(前端vue项目) 服务器安装宝塔面板 连接到服务器 使用 SSH 连接到你的服务器&#xff1a; ssh rootip安装宝塔面板 运行以下命令来安装宝塔面板&#xff1a; yum install -y wget wget -O install.sh http://download.bt.cn/install/install_6.0.sh sh install.sh安…

通义万相 2.1:AIGC 领域的 “王炸” 组合如何颠覆创作生态?

引言 在数字化和人工智能的飞速发展中&#xff0c;AIGC&#xff08;AI生成内容&#xff09;技术已经成为推动创作、设计和内容生成领域创新的核心力量。而当通义万相2.1与蓝耘智算平台强强联手&#xff0c;这一“王炸”组合不仅提升了AIGC的效率&#xff0c;还为创作生态带来了…

elementPlus之日历扩展功能

在这里做个记录&#xff0c;感觉用得还挺多的 功能有如下&#xff1a; 切换月份按钮对应日历视图和中间日期都要变选择日期日历视图要变点击日历视图中的不属于当前选中月份的日期即可触发日历视图变化以及中间日期也要变 代码如下&#xff1a; <template><div clas…

C# NX二次开发:获取模型中所有表达式并且更新某个表达式的值

大家好&#xff0c;今天要讲的是关于NX中表达式的相关UFUN函数。 UF_MODL_ask_exps_of_part (view source) tag_tpart_tagInputTag of the part to be queriedint *number_of_expsOutputNumber of expressions returnedtag_t * *expsOutput to UF_*free*All the expressions i…

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令&#xff0c;用于创建并启动一个新的容器。 -d : 后台模式&#xff08;detached mode&#xff09…

计算机毕业设计:基于web的乡村旅游系统

基于web的乡村旅游系统mysql数据库创建语句基于web的乡村旅游系统oracle数据库创建语句基于web的乡村旅游系统sqlserver数据库创建语句基于web的乡村旅游系统springspringMVChibernate框架对象(javaBean,pojo)设计基于web的乡村旅游系统springspringMVCmybatis框架对象(javaBea…

c#面试题整理9

1.遍历xml文档 2.解释一下这段 String s new String("xyz"); 这段在C#平台中&#xff0c;编译失败 3.说明一下抽象类 抽象类可以有构造函数 抽象类不能是静态和密封的类&#xff0c;密封的类表示无法继承&#xff0c;抽象类本身就不可实例化&#xff0c;加不好…

【具身相关】legged_gym, isaacgym、rsl_rl关系梳理

【legged_gym】legged_gym, isaacgym代码逻辑梳理 总体关系IsaacGymlegged_gymrsl_rl三者的关系 legged_gym代码库介绍环境模块env 总体关系 IsaacGym Isaac Gym 是 NVIDIA 开发的一个高性能物理仿真平台&#xff0c;专门用于强化学习和机器人控制任务。它基于 NVIDIA 的 Phy…

侯捷C++课程学习笔记:构造函数那些事儿(四)

C 构造函数全面解析 上图节选自爱吃喵的鲤鱼 一、构造函数基础特性 1. 核心功能定位 ​对象初始化中枢&#xff1a;负责在对象创建时完成成员变量的初始化工作​生命周期唯一性&#xff1a;每个对象在其生命周期内仅被调用一次&#xff0c;类似出生证明的签发过程 2. 基础语…

微信小程序审核失败,你的小程序涉及提供播放、观看等服务,请补充选择:文娱-其他视频类目 解决

之前审核的都没有什么问题&#xff0c;结果这次就不给过还提示我们这个。 我们的视频是操作演示的视频。仅用于介绍使用。 是否接受修改指引&#xff0c;勾选我不理解以上内容 再勾选 下面不理解内容异项 申诉理由 视频播放和观看只限于当前用户自己使用&#xff0c;而视…

蓝桥杯嵌入式组第七届省赛题目解析+STM32G431RBT6实现源码

文章目录 1.题目解析1.1 分而治之&#xff0c;藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 ADC模块1.3.3 IIC模块1.3.4 UART模块1.3.5 LCD模块1.3.6 LED模块1.3.7 TIM模块 2.源码3.第七届题目 前言&#xff1a;STM32G431RBT6实现嵌入式组第七届题目解析源码&…

苹果iOS 18.4将强制升级HomeKit架构,旧版设备或无法使用

在科技飞速发展的当下,智能家居领域也在不断革新。而苹果公司作为科技行业的巨头,其每一次动作都备受关注。近日,有消息称苹果计划在iOS 18.4版本中停止对旧版HomeKit架构的支持,这一举措意味着用户将被迫升级,也可能对众多使用Apple Home应用的智能家居设备用户产生深远影…

在MATLAB中实现PID控制仿真

在MATLAB中实现PID控制仿真可以通过代码编程或Simulink图形化建模两种方式完成。以下是两种方法的详细操作步骤和示例&#xff1a; 方法1&#xff1a;使用MATLAB脚本编程&#xff08;基于控制系统工具箱&#xff09; 步骤1&#xff1a;定义被控对象的数学模型 假设被控对象是…

Python核心模块的高级用法及Linux系统常用命令

一、Python相关 1、正则表达式 &#xff08;1&#xff09;正则表达式基础 ①含义&#xff1a;记录文本规则的代码。 ②注意&#xff1a;需要导入re模块 ③特点&#xff1a; 语法比较复杂&#xff0c;可读性较差。通用性很强&#xff0c;适用于多种编程语言 ④步骤&#…

Spring 框架学习

技术体系结构 总体技术体系 单一架构 一个项目&#xff0c;一个工程&#xff0c;导出为一个 war 包&#xff0c;在一个 Tomcat 上运行&#xff0c;也叫 all in one。 单一架构&#xff0c;项目主要应用技术框架为&#xff1a;Spring、SpringMVC 、Mybatis。 分布式架构 一个…