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

linux进程管理

进程管理

进程是启动的可执行程序的一个指令

1、进程简介

(1)进程的组成部分

  • 已分配内存的地址空间
  • 安全属性,包括所有权凭据和特权
  • 程序代码的一个或多个执行线程
  • 进程状态

(2)程序和进程的区别

程序是一个静态的二进制文件,进程是程序运行的过程

  • 程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程
  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
  • 进程还具有并发性和交往性,而程序却是封闭的

(3)进程和线程的区别

  • 一个进程可以拥有多个线程,而一个线程只能同时被一个进程所拥有
  • 线程不能单独执行,但是每个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行

(4)前台进程和后台进程

  • 前台进程:在 shell 提示处理打入命令后,创建一个子进程,运行命令, Shell 等待命令退出,然后返回到对用户给出提示符。这条命令与 Shell 异步运行,即在前台运行,用户在它完成之前不能执行别一个命令 。
[root@tianqinwei test]# sleep 5 --- 等待命令退出[root@tianqinwei test]# 
  • 后台进程:在 Shell 提示处打入命令,若后随一个 &, Shell 创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与 Shell 同步运行,即在后台运行。“后台进程必须是非交互式的”
[root@tianqinwei test]# sleep 5 &
[1] 30687
[root@tianqinwei test]#

(5)进程分类

例:交互进程和守护进程

[root@tianqinwei test]# read -p "input name:" name --- 交互进程
input name:student[root@tianqinwei test]# systemctl enable --now vdo.service --- (启动系统服务)守护进程

2、进程的基本状态和状态转换

(1)进程状态

在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变

(2)状态转换


3、查看进程

(1)w

[root@tianqinwei ~]# w19:14:36 up 2 days,  1:02,  2 users,  load average: 0.10, 0.04, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.174.1    Sat18    1.00s  0.20s  0.01s w
root     pts/1    192.168.174.1    18:19    4.00s  0.02s  0.01s -bash

信息含义:

  • JCPU: 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的 CPU时间会显示在这里
  • PCPU : cpu 执行程序消耗的时间
  • WHAT: 用户下在执行的操作
  • load average : 分别显示系统在过去 1、 5、 15分钟内的平均负载程度
  • FROM : 显示用户从何处登录系统,“: 0”的显示代表该用户时人 X Windows 下,打开文本模式窗口登录的
  • IDLE: 用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置

查看个别用户信息:w [用户名]

(2)静态查看进程:ps

<1> 常用选项:

-a 显示所有用户的进程
-u显示用户名和启动时间
-x显示没有控制终端的进程
-e显示所有进程,包括没有控制终端的进程
-l 长格式显示
-w宽行显示,可以使用多个 w 进行加宽显示
-f做一个更完整的输出

<2> 常用命令:

[root@tianqinwei ~]# ps -ef 
[root@tianqinwei ~]# ps aux 

<3> 案例:

例1:将占cpu的前10个进程列出来

例2:自定义显示进程信息

附:查找服务进程号:pgrep/pidof [服务名称]

[root@tianqinwei ~]# pgrep sshd --- 多行显示
994
2321
2341
[root@tianqinwei ~]# pidof sshd --- 单行显示
2341 2321 994

(3)动态查看进程:top

  • 格式:top [-d 数字] | [-bnp]

<1> 常用选项

-d后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件
-n与-b搭配,进行几次top的输出结果
-i不显示闲置或者僵死的进程信息
-c显示进程的整个命令路径,而不是只显示命令名称
-s使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
-p指定某些个PID来进行查看检测

<2> 案例

设置进程刷新时间:
[root@tianqinwei ~]# top -d 2 --- 过两秒刷新一次
查看指定进程的动态信息:
[root@tianqinwei ~]# top -d 1 -p 10126 --- 查看进程号10126的进程每秒的动态信息
将信息写入文件:
[root@tianqinwei ~]# top -d 1 -b -n 2 > a.txt --- 每过一秒将两次top信息写入到文件中

4、信号控制进程

(1)查看所有支持的信号:kill -l 

(2)常用信号

编号信号名
1)SIGHUP
重新加载配置
2)SIGINT
键盘中断^C
3)SIGQUIT
键盘退出
9)SIGKILL
强制终止
15)SIGTERM
终止(正常结束),缺省信号
18)SIGCONT
继续
19)SIGSTOP
停止
20)SIGTSTP
暂停^Z

(3)案例

例1:终止进程

[root@tianqinwei ~]# pidof httpd
31756 31755 31754 31753 31752
[root@tianqinwei ~]# kill -9 31756 --- 强制终止进程
[root@tianqinwei ~]# pidof httpd
53823 31755 31754 31753 31752

例2:终止httpd的所有进程

[root@tianqinwei ~]# pidof httpd
53823 31755 31754 31753 31752
[root@tianqinwei ~]# killall httpd --- 为所有httpd进程发送信号
[root@tianqinwei ~]# pidof httpd

(4)简介

案例:

[root@tianqinwei ~]# sleep 200 --- 运行程序,将前台运行的程序挂起在后台并^Z中止
^Z
[1]+  Stopped                 sleep 200
[root@tianqinwei ~]# jobs --- 查看后台作业
[1]+  Stopped                 sleep 200
[root@tianqinwei ~]# fg 1 --- 将作业1调回前台后,再^Z在后台挂起中止
sleep 200
^Z
[1]+  Stopped                 sleep 200
[root@tianqinwei ~]# bg 1 --- 将作业1在后台运行
[1]+ sleep 200 &
[root@tianqinwei ~]# jobs --- 查看后台作业
[1]+  Running                 sleep 200 &
[root@tianqinwei ~]# kill %1 --- 中止后台作业1的进程
[root@tianqinwei ~]# jobs
[1]+  Terminated              sleep 200

相关文章:

linux进程管理

进程管理 进程是启动的可执行程序的一个指令 1、进程简介 &#xff08;1&#xff09;进程的组成部分 已分配内存的地址空间安全属性&#xff0c;包括所有权凭据和特权程序代码的一个或多个执行线程进程状态 &#xff08;2&#xff09;程序和进程的区别 程序是一个静态的二进制…...

【深度强化学习】(6) PPO 模型解析,附Pytorch完整代码

大家好&#xff0c;今天和各位分享一下深度强化学习中的近端策略优化算法&#xff08;proximal policy optimization&#xff0c;PPO&#xff09;&#xff0c;并借助 OpenAI 的 gym 环境完成一个小案例&#xff0c;完整代码可以从我的 GitHub 中获得&#xff1a; https://gith…...

【数据结构】第二站:顺序表

目录 一、线性表 二、顺序表 1.顺序表的概念以及结构 2.顺序表的接口实现 3.顺序表完整代码 三、顺序表的经典题目 1.移除元素 2.删除有序数组中的重复项 3.合并两个有序数组 一、线性表 在了解顺序表前&#xff0c;我们得先了解线性表的概念 线性表&#xff08;linear…...

嵌入式安防监控项目——实现真实数据的上传

目录 一、相关驱动开发 二、A9主框架 三、脚本及数据上传实验 https://www.yuque.com/uh1h8r/dqrma0/tx0fq08mw1ar1sor?singleDoc# 《常见问题》 上个笔记的相关问题 一、相关驱动开发 /* mpu6050六轴传感器 */ i2c138B0000 { /* #address-cells <1>…...

SAP 生成UUID

UUID含义是通用唯一识别码 (Universally Unique Identifier)&#xff0c;这 是一个软件建构的标准&#xff0c;也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 UUID-Universally…...

DevOPs介绍,这一篇就足够了

一、什么是DevOps&#xff1f; DevOps是一种将软件开发和IT运维进行整合的文化和运动。它的目标是通过加强软件开发、测试和运维之间的协作和沟通&#xff0c;使整个软件开发和交付过程更加高效、快速、安全和可靠。DevOps涵盖了从计划和设计到开发、测试、交付和部署的全生命…...

libcurl库简介

一、libcurl简介libcurl是一个跨平台的网络协议库&#xff0c;支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权&#xff0c;HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传&#xff0c;代理&#xff0c;cookies,和用户认证。…...

Spark SQL支持DataFrame操作的数据源

DataFrame提供统一接口加载和保存数据源中的数据&#xff0c;包括&#xff1a;结构化数据、Parquet文件、JSON文件、Hive表&#xff0c;以及通过JDBC连接外部数据源。一个DataFrame可以作为普通的RDD操作&#xff0c;也可以通过&#xff08;registerTempTable&#xff09;注册成…...

Java【归并排序】算法, 大白话式图文解析(附代码)

文章目录前言一、排序相关概念1, 什么是排序2, 什么是排序的稳定性3, 七大排序分类二、归并排序1, 图文解析2, 代码实现三、性能分析四、七大排序算法总体分析前言 各位读者好, 我是小陈, 这是我的个人主页 小陈还在持续努力学习编程, 努力通过博客输出所学知识 如果本篇对你有…...

【springboot】数据库访问

1、SQL 1、数据源的自动配置-HikariDataSource 1、导入JDBC场景 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency>数据库驱动&#xff1f; 为什么导入JD…...

普通和hive兼容模式下sql的差异

–odps sql –– –author:宋文理 –create time:2023-03-08 15:23:52 –– – 差异分为三块 – 1.运算符的差异 – 2.类型转换的差异 – 3.内建函数的差异 – 以下是运算符的差异&#xff1a; – BITAND&#xff08;&&#xff09; – 当输入参数是BIGINT类型的时候&…...

github开源自己代码

接下来&#xff0c;我们需要先下载Git&#xff0c;的网址&#xff1a;https://git-scm.com/downloads&#xff0c;安装时如果没有特殊需求&#xff0c;一直下一步就可以了&#xff0c;安装完成之后&#xff0c;双击打开Git Bash 出现以下界面&#xff1a; 第一步&#xff1a;…...

数据库基础语法

sql&#xff08;Structured Query Language 结构化查询语言&#xff09; SQL语法 use DataTableName; 命令用于选择数据库。set names utf8; 命令用于设置使用的字符集。SELECT * FROM Websites; 读取数据表的信息。上面的表包含五条记录&#xff08;每一条对应一个网站信息&…...

【Java】期末复习知识点总结(4)

适合Java期末的复习~ &#xff08;Java期末复习知识点总结分为4篇&#xff0c;这里是最后一篇啦&#xff09;第一篇~https://blog.csdn.net/qq_53869058/article/details/129417537?spm1001.2014.3001.5501第二篇~https://blog.csdn.net/qq_53869058/article/details/1294751…...

IDEA好用插件:MybatisX快速生成接口实体类mapper.xml映射文件

目录 1、在Idea中找到下载插件&#xff0c;Install&#xff0c;重启Idea 2、一个测试java文件&#xff0c;里面有com包 3、在Idea中添加数据库 --------以Oracle数据库为例 4、快速生成entity-service-mapper方法 5、查看生成的代码 6、自动生成&#xff08;增删查改&#xff0…...

【JavaEE】初识线程

一、简述进程认识线程之前我们应该去学习一下“进程" 的概念&#xff0c;我们可以把一个运行起来的程序称之为进程&#xff0c;进程的调度&#xff0c;进程的管理是由我们的操作系统来管理的&#xff0c;创建一个进程&#xff0c;操作系统会为每一个进程创建一个 PCB&…...

智慧水务监控系统-智慧水务信息化平台建设

平台概述柳林智慧水务监控系统&#xff08;智慧水务信息化平台&#xff09;是以物联感知技术、大数据、智能控制、云计算、人工智能、数字孪生、AI算法、虚拟现实技术为核心&#xff0c;以监测仪表、通讯网络、数据库系统、数据中台、模型软件、前台展示、智慧运维等产品体系为…...

【Linux】进程优先级前后台理解

环境&#xff1a;centos7.6&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅&#x1f339;相关文章推荐&#xff1a;【Linux】冯.诺依曼体系结构与操作系统【Linux】进程理解与学习&#xff08;Ⅰ&#xff09;浅谈Linux下的shell--BASH【Linux…...

时序预测 | MATLAB实现基于EMD-GRU时间序列预测(EMD分解结合GRU门控循环单元)

时序预测 | MATLAB实现基于EMD-GRU时间序列预测(EMD分解结合GRU门控循环单元) 目录 时序预测 | MATLAB实现基于EMD-GRU时间序列预测(EMD分解结合GRU门控循环单元)效果一览基本描述模型描述程序设计参考资料效果一览...

python 模拟鼠标,键盘点击

信息爆炸 消息轰炸模拟鼠标和键盘敲击import time from pynput.keyboard import Controller as key_col from pynput.mouse import Button,Controller def keyboard_input(insertword):keyboardkey_col()keyboard.type(insertword)def mouth():mouseController()mouse.press(…...

终极指南:用ncmdump彻底解决网易云音乐NCM格式限制

终极指南&#xff1a;用ncmdump彻底解决网易云音乐NCM格式限制 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 在数字音乐时代&#xff0c;格式兼容性已成为音乐爱好者面临的核心挑战。当你从网易云音乐…...

深入Acid引擎架构:模块化设计与现代C++17的最佳实践指南

深入Acid引擎架构&#xff1a;模块化设计与现代C17的最佳实践指南 【免费下载链接】Acid A high speed C17 Vulkan game engine 项目地址: https://gitcode.com/gh_mirrors/ac/Acid Acid引擎是一个基于Vulkan API的高性能C17游戏引擎&#xff0c;采用先进的模块化架构设…...

向华为学习——解读华为流程型组织的基石:业务流架构(BPA)全景解析【附全文阅读】

华为流程型组织 BPA 业务流架构|推介总结 适应人群:企业高管、战略与变革负责人、流程与运营总监、组织与 HR 管理者、数字化与 IT 架构师、咨询顾问。 重要性总结:本文档是华为流程型组织建设的核心方法论,系统解析 BPA 业务流架构全景,明确战略驱动、业务本质、责任落地…...

Godot 4写实水体渲染:从PBR原理到波浪、菲涅尔与焦散实战

1. 项目概述&#xff1a;从像素到波光&#xff0c;在Godot中实现写实水体渲染如果你正在用Godot引擎开发一款开放世界游戏、模拟经营类作品&#xff0c;或者只是想为你的独立游戏场景增添一抹灵动的色彩&#xff0c;那么一个逼真的水体系统往往是提升沉浸感的关键。然而&#x…...

参考文献列表(近现代当代中国篇)

参考文献列表&#xff08;近现代当代中国篇&#xff09;0. 无。为什么是空的&#xff1f;——因为鄙视。岐金兰鄙视近现代当代中国绝大多数思想者。不是个人恩怨&#xff0c;不是学术门户&#xff0c;而是对“构建学术实体”这一集体执念的鄙视。他们中的大多数&#xff0c;终其…...

从示波器到数据记录仪:基于STM32H7+AD7606+J-Scope的实时波形采集系统搭建全流程

基于STM32H7与AD7606的高性能数据采集系统设计与实战 1. 系统架构设计理念 现代工业监测和实验室数据采集对信号采集系统提出了更高要求——需要同步捕获多通道模拟信号&#xff0c;并实现实时可视化分析。基于STM32H7高性能微控制器与AD7606 ADC模块的组合&#xff0c;配合J-S…...

独立开发者如何用AI验证创业点子:15分钟完成市场分析与风险评估

1. 项目概述&#xff1a;一个为独立开发者打造的AI创业点子验证伙伴如果你和我一样&#xff0c;是个喜欢自己动手鼓捣点东西的独立开发者&#xff0c;那你肯定也经历过这个阶段&#xff1a;脑子里冒出一个自认为绝妙的点子&#xff0c;兴奋地花上几周甚至几个月把它做出来&…...

如何用PyWxDump破解微信数据解析的三大技术壁垒:从困境到突破的完整指南

如何用PyWxDump破解微信数据解析的三大技术壁垒&#xff1a;从困境到突破的完整指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 微信数据解析一直是个技术难题&#xff0c;就像试图打开一个不断变换密码的智能保险箱。…...

FPGA加速中性原子量子计算机的原子检测技术

1. 中性原子量子计算机的原子检测挑战量子计算领域近年来最激动人心的进展之一&#xff0c;就是中性原子量子计算机的快速发展。这种量子计算机利用激光镊子&#xff08;光学镊子&#xff09;阵列来捕获和排列中性原子&#xff08;如铷、铯等碱金属原子&#xff09;&#xff0c…...

从DES到AES:被‘遗忘’的IDEA算法,它的设计思想给现代密码学留下了什么?

从DES到AES&#xff1a;被遗忘的IDEA算法如何塑造现代密码学 1991年诞生的IDEA算法曾被誉为"DES的完美继任者"&#xff0c;却在历史舞台上悄然退场。当我们在讨论AES和椭圆曲线加密时&#xff0c;很少有人记得这个瑞士学者设计的算法如何影响了整个加密技术发展轨迹。…...