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

Linux实操篇-进程管理

目录

  • 传送门
  • 前言
  • 一、进程管理概念
  • 二、进程管理实战
      • 1. **查看进程**
        • `ps` 命令
        • `top` 命令
        • `htop` 命令
      • 2. **进程的启动和终止**
        • 启动进程
        • 停止进程
        • 使用 `pkill` 或 `killall`
      • 3. **进程优先级管理**
        • `nice` 和 `renice` 命令
        • `top` 中调整进程优先级
      • 4. **进程的查看与控制**
        • `pgrep` 命令
        • `pstree` 命令
        • `strace` 命令
      • 5. **进程的后台和前台管理**
        • `fg` 和 `bg` 命令
        • `disown` 命令
      • 6. **系统进程和守护进程管理**
        • 使用 `systemd` 管理服务
      • 7. **资源限制和监控**
        • `ulimit` 命令
        • `lsof` 命令
      • 总结

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。

以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇

一、进程管理概念

在这里插入图片描述
进程查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进程终止
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、进程管理实战

在 Linux 系统中,进程管理是系统管理员和开发者日常操作中非常重要的一部分。进程是操作系统执行的一个程序的实例,涉及创建、调度、终止等多个方面。Linux 提供了多种命令和工具来管理进程。以下是一些常见的进程管理操作和相关命令的详细介绍。

1. 查看进程

ps 命令

ps 命令用于显示当前正在运行的进程。它有很多选项,可以自定义输出内容。

  • 查看所有进程:

    ps -ef
    
  • 查看当前用户的进程:

    ps -u <用户名>
    
  • 查看某个进程的详细信息:

    ps -p <进程ID>
    
  • 查看实时更新的进程信息:

    top
    
  • 查看所有进程(包括子进程):

    ps aux
    
top 命令

top 命令用于动态查看系统中运行的进程,并显示 CPU 和内存等资源使用情况。它会不断更新,默认每隔 3 秒刷新一次。

  • 启动 top

    top
    
  • top 界面中按下:

    • P:按 CPU 占用排序
    • M:按内存占用排序
    • q:退出 top
htop 命令

htoptop 命令的一个增强版,提供了更加友好的交互界面,但并不是所有系统默认安装,需要手动安装。

  • 安装 htop

    sudo apt-get install htop  # Debian/Ubuntu
    sudo yum install htop      # CentOS/RHEL
    
  • 启动 htop

    htop
    

2. 进程的启动和终止

启动进程
  • 使用后台执行程序:

    command &  # 在后台运行命令
    
  • 使用 nohup 命令启动进程并使其在终端关闭后继续运行:

    nohup command &  # 将命令放入后台并且忽略挂断信号
    
停止进程
  • 使用 kill 命令发送信号终止进程:

    kill <进程ID>  # 向进程发送 SIGTERM(默认)
    
  • 强制杀死进程(发送 SIGKILL 信号):

    kill -9 <进程ID>
    
  • 如果不确定进程的 ID,可以使用 pstop 命令查找。

使用 pkillkillall
  • pkill 允许通过进程名称来杀死进程:

    pkill <进程名称>
    
  • killall 也可以通过进程名称来终止进程:

    killall <进程名称>
    

3. 进程优先级管理

nicerenice 命令
  • nice 用于启动一个进程时指定其优先级,优先级值的范围是 -20(最高优先级)到 19(最低优先级),默认为 0。

    • 启动时设置优先级:
      nice -n 10 command  # 设置优先级为 10
      
  • renice 用于修改正在运行的进程的优先级:

    renice -n 5 -p <进程ID>  # 将进程的优先级设置为 5
    
top 中调整进程优先级

top 界面中,可以通过按下 r 键来修改进程的优先级(即调整 nice 值)。

4. 进程的查看与控制

pgrep 命令

pgrep 根据指定的模式查找进程,并返回匹配的进程 ID。

  • 查找名为 apache2 的进程:
    pgrep apache2
    
pstree 命令

pstree 显示进程树,显示进程间的父子关系。

  • 查看进程树:

    pstree
    
  • 查看特定进程的进程树:

    pstree <进程ID>
    
strace 命令

strace 用于跟踪系统调用和信号,可以帮助你调试和分析进程的行为。

  • 跟踪一个进程:

    strace -p <进程ID>
    
  • 跟踪一个命令的系统调用:

    strace command
    

5. 进程的后台和前台管理

fgbg 命令
  • fg 命令将后台进程带到前台:

    fg %1  # 将作业号为 1 的后台进程带到前台
    
  • bg 命令将暂停的进程放到后台继续运行:

    bg %1  # 将作业号为 1 的进程放到后台
    
  • 查看后台进程:

    jobs
    
disown 命令

disown 命令用于从 shell 的作业表中移除一个作业,使其在退出终端时不被终止。

command &  # 启动一个后台进程
disown %1  # 移除作业号为 1 的进程

6. 系统进程和守护进程管理

使用 systemd 管理服务

现代 Linux 系统(如 Ubuntu 16.04 及更高版本、CentOS 7 及更高版本)使用 systemd 来管理系统进程和服务。常见的命令包括:

  • 查看正在运行的服务:

    systemctl list-units --type=service
    
  • 启动服务:

    sudo systemctl start <服务名称>
    
  • 停止服务:

    sudo systemctl stop <服务名称>
    
  • 重启服务:

    sudo systemctl restart <服务名称>
    
  • 启用服务开机启动:

    sudo systemctl enable <服务名称>
    
  • 禁用服务开机启动:

    sudo systemctl disable <服务名称>
    
  • 查看服务状态:

    systemctl status <服务名称>
    

7. 资源限制和监控

ulimit 命令

ulimit 用于显示或设置进程可以使用的资源限制(如最大文件描述符、最大进程数等)。

  • 查看当前限制:

    ulimit -a
    
  • 设置资源限制(例如,设置最大文件打开数为 1024):

    ulimit -n 1024
    
lsof 命令

lsof 用于列出当前系统中打开的文件及与其相关的进程。这个工具对调试和管理资源非常有用。

  • 查看某个进程打开的文件:

    lsof -p <进程ID>
    
  • 查看某个文件被哪些进程打开:

    lsof <文件路径>
    

总结

  • 查看进程:使用 pstophtoppstree 命令。
  • 管理进程:使用 killpkillkillallbgfgdisown 等命令。
  • 进程优先级:通过 nicerenice 调整进程的优先级。
  • 后台管理:使用 bgfg 将进程移到后台或前台。
  • 系统服务管理:使用 systemctl 管理守护进程和服务。

这些工具和命令是 Linux 系统中进程管理的基本组成部分,掌握它们能帮助你更高效地管理和调试系统中的进程。

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

相关文章:

  • 防火墙ASPF(针对应用层包过滤技术) FTP(主动模式)
  • 为什么我开始用 Data.olllo 做数据处理了?
  • langchain框架-对比分析chain的三种实现方式
  • 【二】10.L并发与竞争机制
  • HOW - 简历和求职面试宝典(三)
  • Python多版本共存指南:使用虚拟环境实现不同Python版本的灵活切换
  • 【CBAP50技术手册】#29 Mind Mapping(思维导图):BA(业务分析师)的“思维引擎”
  • Debian:自由操作系统的精神图腾与技术基石
  • Python 基于卷积神经网络手写数字识别
  • (二)视觉——工业镜头(以海康威视为例)
  • 罗马-华为
  • CC攻击的种类与特点解析
  • ElementUI表单验证指南
  • Spring Boot的启动流程,以及各个扩展点的执行顺序
  • AI视频生成加速器:Medeo如何用零门槛技术重塑内容创作
  • 【python爬虫】利用代理IP爬取filckr网站数据
  • UFSH2024 程序化生成 笔记
  • GJOI 5.27 题解
  • 增广拉格朗日时空联合规划ALTRO-iLQR (一)
  • 2.qml使用c++
  • 【C++基础知识】RAII的一个简单示例讲解
  • MySQL8.4组复制
  • SpeedFolding 论文翻译
  • “谁能进,谁不能进?”——用NAC精准控制网络访问
  • JS中class和构造函数的区别
  • Selenium 测试框架 - Kotlin
  • 制造企业搭建AI智能生产线怎么部署?
  • .NET WinForm图像识别二维码/条形码并读取其中内容
  • 01.认识Kubernetes
  • 广告流量监测和IP地址离线库