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

linux-进程管理

linux-进程管理

  • 一、进程概述
    • 1. 基本概念
    • 2. 运行状态
    • 3. 进程生命周期
  • 二、查看进程
    • 1. ps aux
    • 2. pstree
    • 3. top
    • 4. $$
  • 三、杀死进程
  • 四、资源限制


一、进程概述

1. 基本概念

  • 进程:程序运行时的实例,拥有独立内存空间和系统资源
  • 线程:进程内的执行单元,共享进程资源
  • 进程 ID(PID):每个进程的唯一标识符,由系统动态分配
                                 init进程(PID=1)是所有进程的父进程

2. 运行状态

R(运行)、S(睡眠)、T(暂停)、Z(僵尸)、D(不可中断睡眠)


3. 进程生命周期

父进程 → fork() → 子进程 → exec() → 加载程序 → 运行 → exit() → 僵尸 → wait()回收


二、查看进程

1. ps aux

查看所有的进程

[root@hz ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

查看所有的进程,然后过滤出bush程序

[root@hz /]# ps aux|grep bash
root 1342 0.0 0.1 7788 4224 pts/0 Ss 15:39 0:00 -bas
root 2079 0.0 0.0 6632 2560 pts/0 S+ 19:03 0:00 grep --color=auto bash


2. pstree

查看进程树和PID

[root@hz ~]# pstree -p
systemd(1)─┬─NetworkManager(765)─┬─{NetworkManager}(796)
│ └─{NetworkManager}(802)
├─VGAuthService(715)
├─agetty(836)
├─auditd(684)───{auditd}(685)
├─chronyd(722)
├─crond(832)
├─dbus-broker-lau(708)───dbus-broker(709)
├─firewalld(712)───{firewalld}(872)
├─irqbalance(713)───{irqbalance}(717)
├─rsyslogd(881)─┬─{rsyslogd}(903)
│ └─{rsyslogd}(906)
├─sshd(822)───sshd(1330)───sshd(1344)───bash(1345)───pstree(+
├─systemd(1335)───(sd-pam)(1337)
├─systemd-journal(611)
├─systemd-logind(714)
├─systemd-udevd(625)
└─vmtoolsd(716)─┬─{vmtoolsd}(743)
└─{vmtoolsd}(744)


3. top

动态显示CPU/内存占用最高的进程
按 q / ctrl+c 退出

[root@hz ~]# top
top - 16:00:48 up 1:55, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 154 total, 1 running, 153 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3627.6 total, 2775.1 free, 559.8 used, 538.5 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 3067.8 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1655 root 20 0 10800 4224 3456 R 0.7 0.1 0:00.16 top

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
idle 空闲的cpu百分比
us 表示用户进程使用的cpu百分比 user --》在用户空间里运行的进程消耗的cpu
sy 表示系统进程使用的cpu百分比 system --》在内核空间里运行的操作系统的代码进程消耗的cpu


4. $$

代表当前终端(bush)的进程号
[root@hz ~]# echo $$
1345


三、杀死进程

[root@hz ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
[root@hz ~]# kill -9 4715

kill 杀死进程的命令
signal 信号类型
9) SIGKILL 告诉内核强制杀死进程 kill signal
15) SIGTERM 让内核告诉进程自我终结 --》这个方式可以被屏蔽 terminate signal


四、资源限制

查看当前所有的资源限制

[root@hz ~]# ulimit -a
real-time non-blocking time (microseconds, -R) unlimited
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14344
max locked memory (kbytes, -l) 8192
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14344
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

临时修改

ulimit -n 4096 # 临时将文件描述符限制提高到4096

永久限制(修改配置文件)

vim /etc/security/limits.conf
# 添加以下内容(针对用户username)
username hard nofile 65535
username soft nofile 65535

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

相关文章:

  • 人工智能学习18-Pandas-按标签选择
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解(二)——Central消息事件机制初探
  • Ansible
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • ESP32的spi通讯(Arduino)
  • Ubuntu 实现 sudo 免密码关键步骤
  • 启动springboot项目提示没有主清单属性
  • C++ 内存泄露
  • 以下是 NumPy 在统计与矩阵运算中的核心用法总结
  • linux msyql8 允许远程连接
  • java中扩展运算符
  • 《开窍》读书笔记8
  • 无线USB转换器TOS-WLink露面1个月以来总结
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • csharp设计方法
  • 带中断计数器的UART接收中断程序 (8259@400H/402H)
  • RapidNJ软件的安装
  • 【Python 爬虫 防盗链】
  • 山东大学软件学院项目实训:基于大模型的模拟面试系统项目总结(九)
  • Apifox将base64转换为图片(调试时方便查看)
  • BeckHoff <---> Keyence (LJ-X8000) 2D相机 Profinet 通讯
  • IO之详解cin(c++IO关键理解)
  • 矩阵运算基础、矩阵求导
  • 《Apollo 配置中心在动态主题系统中的设计与扩展》
  • openeuler 系统—— 集成大模型分析日志中的错误信息生成故障原因报告
  • LeetCode - 34. 在排序数组中查找元素的第一个和最后一个位置
  • GTSAM中InitializePose3::initialize()使用详解
  • 数据目录:企业数据管理的核心引擎与最佳实践
  • 各种运算符的学习心得