进程及进程管理

news2024/11/14 21:22:23

Linux基础

提示:个人学习总结,仅供参考。
一、Linux系统部署

二、服务器初始化

三、文件和用户管理

四、用户的权限

五、进程及进程管理


提示:文档陆续更新整理

进程及进程管理

  • Linux基础
  • 一、进程简介
    • (一)进程三问
      • 1. 什么是进程?(了解)
      • 2. 进程的生命周期(了解)
      • 3.进程状态(了解)
  • 二、进程管理process
    • (一)目标
    • (二)静态查看进程ps
      • 1. 静态查看进程ps
      • 2. 进程排序
      • 3. 进程的父子关系
      • 4. 自定义显示字段(了解)
    • (三)动态查看进程top
      • 1. 上半部分
      • 2. 下半部分
      • 3. top技巧
    • (四)使用信号控制进程
      • 1. 信号种类
      • 2. 信号9,15
    • (五)进程优先级nice
      • 1. 简介
      • 2. 优先级范围和特性
      • 3. 查看进程的nice级别
      • 4. 启动具有不通nice级别的进程
      • 5. 更改现有进程的nice级别
  • 三、作业控制jobs(了解)
    • (一)简介
    • (二)后台程序控制示例
  • 四、虚拟文件系统proc(了解)
    • (一)简介
    • (二)CPU
    • (三)内存
    • (四)内核



提示:以下是本篇文章正文内容

一、进程简介

(一)进程三问

1. 什么是进程?(了解)

进程是已启动的可执行程序的运行示例,进程有以下组成部分:
· 已分配内存的地址空间;
· 安全属性,包括所有权凭据和特权;
· 程序代码的一个或多个副本(也叫执行线程);
· 进程状态;

程序:二进制文件,静态 /usr/
进程:是程序运行的过程,动态,有生命周期及运行状态。

2. 进程的生命周期(了解)

在这里插入图片描述

父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个饿,唯一的进程ID(PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:
centos5/6系统进程:init
centos7系统进程:systemd

3.进程状态(了解)

在这里插入图片描述

R:running运行
T:stopped暂停、停止
S:sleeping休眠
Z:zombie僵死


二、进程管理process

(一)目标

了解进程的相关信息:

  1. PID,PPID(重点)
  2. 当前的进程状态(重点)
  3. 内存的分配情况
  4. CPU和已花费的实际时间
  5. 用户UID,他决定进程的特权
  6. 进程名称(重点)

(二)静态查看进程ps

1. 静态查看进程ps

//静态查看进程ps
[root@localhost ~]#ps aux | head - 2
//显示前一行进程
一个进程为例
root@qianfeng ~]# ps aux l head -2
USER PID %CPU %MEM   VSZ   RSS  TTY  STAT START TIME  COMMAND
root 1    0.0  0.6  128096 6708 ?    Ss   16:20 0.01 /usr/lib/systemd/systemd

命令参数说明
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况
ps x 不以终端机来区分

ps aux 输出的字段含义
USER:运行进程的用户
PID:进程ID
%CPU:CPU占用率
%MEM:内存占用率
VSZ:占用虚拟内存
RSS:占用实际内存
TTY:进程运行状态
STAT:进程状态
man ps(STATE)
START:进程的启动时间
TIME:进程占用CPU的总时间
COMMAND:进程文件,进程名

2. 进程排序

语法:ps aux --sort %cpu

示例
以CPU占用率降序排列(减号是降序)

3. 进程的父子关系

语法:ps -ef

示例
查看进程的父子关系。请观看PID和PPID

4. 自定义显示字段(了解)

语法:ps axo

示例
[root@localhost ~]#ps axo user,pid,ppid,%cpu,%mem,command | head -3

(三)动态查看进程top

1. 上半部分

top - 11:45:08 up 18:54, 4 users, load average: 0.05,0.05, 0.05 Tasks:
176 total,1 running, 175 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0
us, 0.3 sy, 0.0 ni, 99.7 id. 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem :
3865520 total, 1100000 free 580268 used, 2185252 buff/cache KiB Swap:
4063228 total4063228 free,0 used.2917828 avail Mem
说明:
第一行
top - 11:45:08 up 18:54, 4 users, load average: 0.05,0.05, 0.05 程序名-系统时间 运行时间 登录用户数 CPU负载 5分钟10分钟15分钟
第二行
Tasks: 176 total, 1 running, 175 sleeping, 0 stopped, 0 zombie 总进程数 运行数1 睡眠数175 停止数0 僵死数0
第三行
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id. 0.0 wa, 0.0 hi, 0.0 si, 0.0 st CPU占用率 us用户 sy系统 ni优先级 id空闲 wa等待 hi硬件 si软件
st虚拟机
第四行
KiB Mem : 3865520 total, 1100000 free,580268 used, 2185252 buff/cache 物理内存K total(总共4G)free空闲1G used使用500M cache缓存硬盘内容2G
第五行
KiB Swap: 4063228 total,4063228 free,0 used.2917828 avail Mem 交换内存 total总共4G free空闲4G used使用0

2. 下半部分

字段介绍(了解)
PID,USER,%CPU,%MEM略
VIRT:vitual memory usage 虚拟内存
需要这些内存,但没有占满。
RES:resident memory usage 常驻内存
用了多少内存
SHR:shared memory 共享内存
1. 除了自身进程的共享内存,也包括其他进程的共享内存
2. 共享内存大小公式:RES-SHR top常用内部指令
h|? 帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前翻页
> 向后翻页
z 彩色,Z设置彩色,使用数字调制

3. top技巧

动态查看进程 top,像windows任务管理器 top //回车,立即刷新,按z彩色显示,按F,通过光标设置 top -d 1
//每1秒刷新 top -d 1 -p 10126 //查看指定进程的动态信息 top -d 1 -p 10126,1
//查看10126和1号进程 q //退出查看

(四)使用信号控制进程

1. 信号种类

给信号发送信号
kill -l  //列出所有支持的信号编号,信号名
1)SIGHUP  重新加载配置
2)SIGINT   键盘中断Ctrl+C
3)SIGQUIT  键盘退出Ctrl+\,类似SIGINT
9)SIGKILL    强制终止,无条件
15)SIGTERM  终止(正常结束),缺省信号
18)SIGCONT  继续
19)SIGSTOP   暂停
20)SIGTSTP   键盘暂停Ctrl+Z

2. 信号9,15

1. 创建2个文件,查看终端号。
[root@localhost ~]#touch test1 test2
[root@localhost ~]#tty
/dev/pts/0

2. 通过一个终端,打开一个vim
[root@localhost ~]#vim test1

3. 通过另外一个终端,打开一个vim
[root@localhost ~]#vim tes2

4. 通过另外一个终端,查看两个进程
[root@localhost ~]#ps aux | grep vim
root 9305 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim test1
root 9372 0.1 0.2 11068 2948 ts/2 S+ 23:02 0:00 vim test2

5. 发送信号15  和信号9,观察两个终端状态
[root@localhost ~]#kill -9 9305
[root@localhost ~]#kill -15 9372
观察两个终端,一个正常终止,一个非法杀死。

---------------------------------------------------------------------
6. 重复1-3步,使用killall ,杀死所有vim进程
[root@localhost ~]#killall vim  //给所有vim进程发送信号
[root@localhost ~]#killall  httpd
尽量不要使用kill -9

(五)进程优先级nice

1. 简介

内核使用[0~139]这140个数来表示140种优先级。

内核使用一个简单些的数值范围,从0到139(包含),用来表示内部优先级。同样是值越低,优先级越高。从0到99的范围专供实时进程使用。 nice值[20, +19]映射到范围100到139。

实时进程的优先级总是比普通进程更高。

2. 优先级范围和特性

优先级图示 在这里插入图片描述

系统中的两种优先级 在top中显示的优先级又两个,PR值和nice值 NI:实际nice值
PR(+20):将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

优先级特性 nice值越大:表示优先级越低,例如+19 nice值越小:表示优先级越高,例如-20

3. 查看进程的nice级别

[root@localhost ~]#ps axo pid,command,nice --sort=-nice  | head 5 

4. 启动具有不通nice级别的进程

//示例
//默认情况
//启动线程时,通常会继承父进程的nice级,默认为0
//手动启动不同nice
[root@localhost ~]# nice -n -5 sleep 6000 &
[1] 2220
[root@localhost ~]# nice -n -10 sleep 7000 &
[2] 2229
[root @localhost ~]# ps axo command,pid,nice I grep sleep
sleep 6000           2220  -5
sleep 7000           2229  -10
grep --color=auto sleep     2233    0

5. 更改现有进程的nice级别

//示例
//使用shell更改nice级别

1. 创建一个睡眠示例程序
[root@localhost ~]# sleep 7000 &
[2]2669

2. 修改它的nice值
[root@localhost ~]# renice -20 2699
2699(进程ID)旧优先级为0,新优先级为-20,观察修改后的nice值

三、作业控制jobs(了解)

(一)简介

作业控制是一个命令功能,也叫后台运行
关键词介绍
foreground fg:前台进程:是在终端中运行的命令,占领终端
background bg:后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。

(二)后台程序控制示例

1. 观察占领前台的现象
[root@localhost ~]# sleep 2500
运行一个程序,当前终端无法输入。观察占领前台的现象。大部分命令行输入无效
Ctrl+C 终止进程

2. 运行后台程序
[root@localhost ~]# sleep 3500 &

3. ps查询所有程序
[root@localhost ~]# ps aux | grep sleep
root    4320  0.0   0.0   107956  616  pts/0   S   10:20  0:00  sleep 3500

4. jobs查看后台进程
[root@localhost ~]# jobs
[1]- Running sleep 3500 &

5. 调动后台程序至前台
[root@localhost ~]# fg 1  //将作业1调回前台
Ctrl+Z  //键盘暂停状态,停止状态

6. 消灭后台进程
[root@localhost ~]# kill  %1

注意,“kill 1”  和 “kill %1”  不通
前者终止PID为1的进程
后者杀死作业序列号为1的后台程序

总结
& 后台运行程序
jobs 查询后台运行的程序
kill %1 停止后台进程


四、虚拟文件系统proc(了解)

(一)简介

	虚拟文件系统:采集服务器自身内核、进程运行的状态信息

(二)CPU

/proc/cpuinfo

[root@localhost ~]#cat  /proc/cpuinfo

(三)内存

/proc/meminfo

[root@localhost ~]#cat /proc/meminfo

[root@localhost ~]#less /proc/meminfo

(四)内核

/proc/cmdline

[root@localhost ~]#cat /proc/cmdline

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

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

相关文章

面向万物智联的应用框架的思考和探索(上)

原文&#xff1a;面向万物智联的应用框架的思考和探索&#xff08;上&#xff09;&#xff0c;点击链接查看更多技术内容。 应用框架&#xff0c;是操作系统连接开发者生态&#xff0c;实现用户体验的关键基础设施。其中&#xff0c;开发效率和运行体验是永恒的诉求&#xff0c…

代码命名规范是真优雅呀!代码如诗

日常编码中&#xff0c;代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图&#xff0c;也是一项必备的能力。那它们有什么规律呢&#xff1f; Java项目的代码结构&#xff0c;能够体现它的设计理念。Java采用长命名的方式来规范类的命名&#xff0c;能够自己表达…

网络安全怎么学,才不会成为脚本小子?

一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09; 了解网络安全相关法律法规 熟悉基本概念&#xff08;SQL 注入、上传、XSS、CSRF、一句话木马等&#xff09;。 通过关键字&#xff08;SQL 注入、上传、XSS、CSRF、一句话木马等&#…

RK3588 lt16911uxc hdmi in

我们的单板需要四路HDMI IN,其中一路使用了rk3588自带的hdmi rx,另外三路通过LT6911UXC 转接芯片,实现了三路hdmi in 使用了rk3588的DPHY0,DPHY1以及DCPHY0 设备树修改如下: /* DCPHY0 */ &csi2_dcphy0 { status = "okay"; ports { #addres…

【Errors】【计算机图形学】A-SDF复现的一点纠正记录

ICCV 2021的工作A-SDF&#xff0c;在跑的过程中可能是一些版我Run了这篇工作代码的Reconstruction&#xff0c;然后出现了一点小小的错误&#xff0c;记录如下。 问题一&#xff1a;对数据做直接修改导致出错&#xff08;可能是不同的pytorch版本导致的?&#xff09; 错误描述…

Notepad++ 配置python环境及虚拟环境和其它编程语言环境

背景&#xff1a; 在执行某些项目的时候&#xff0c;经常会否遇到这样一种情况(以python语言为例)&#xff1a;不想在python的基础环境下运行&#xff0c;创建了虚拟环境来装相关项目的包&#xff0c;但是每次使用都要切换到虚拟环境下面使用"activate "命令激活环境…

AT24C02芯片介绍

AT24C02管脚介绍 AT24C02低功耗CMOS串行EEPROM&#xff0c;它是内含2568位存储空间&#xff0c;具有工作电压宽&#xff08;2.5&#xff5e;5.5V&#xff09;、擦写次数多&#xff08;大于10000次&#xff09;、写入速度快&#xff08;小于10ms&#xff09;等特点。 AT24C02的1…

Elasticsearch --- 数据同步、集群

一、数据同步 elasticsearch中的酒店数据来自于mysql数据库&#xff0c;因此mysql数据发生改变时&#xff0c;elasticsearch也必须跟着改变&#xff0c;这个就是elasticsearch与mysql之间的数据同步。 思路分析&#xff1a; 常见的数据同步方案有三种&#xff1a; 同步调用 …

JavaScript:链表

文章目录 链表js没有链表吗203. 移除链表元素为什么设置虚拟头节点思路与代码分析上面代码补充分析注意&#xff1a;为什么把虚拟头节点赋值给 cur 204. 设计链表206. 反转链表双指针法--具体思路见代码双指针法具体分析&#xff08;上面代码看懂这里可以忽略&#xff09;递归法…

注册openai用什么邮箱-中文版ChatGPT有哪些

注册openai用什么邮箱 你可以使用任何有效的电子邮箱地址注册 OpenAI&#xff0c;例如 Gmail、Outlook、Yahoo 等。请注意&#xff0c;您需要通过验证您的电子邮件地址才能完成注册过程。 中文版ChatGPT哪个好 中文版的 ChatGPT 在自然语言处理、语言生成等领域拥有广泛的应用…

4.4.1内核编译

内核源码下载地址&#xff1a; https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.4.1.tar.gz 安装依赖包&#xff1a;报错就装 cp /boot/config-xxx ./.config make mrproper make menuconfig,然后save保存&#xff0c;退出 make -j4 //四线程编译 sudo ma…

电气电工相关专业知识及名词解释

一、电流电压 火线、零线、地线&#xff1a;火线和零线的区别就是&#xff1a;火线带电&#xff0c;零线不带电。火线是传电流的&#xff0c;而零线是回流的。 红色是火线&#xff0c;零线一般是绿色的&#xff0c;通常可用电笔来测。电笔一头亮了是火线&#xff0c;不亮的则…

网络计算模式复习(一)

二层C/S架构 概念&#xff1a;C/S架构是一种典型的两层架构&#xff0c;其全称是Client/Server&#xff0c;即客户端服务器端架构。 其中客户端包含一个或多个在用户的电脑上运行的程序。服务器端有两种&#xff0c;一种是数据库服务器端&#xff0c;客户通过数据库连接访问服…

GBASE荣获2023数字中国创新大赛·信创赛道华北赛区一等奖

日前&#xff0c;2023数字中国创新大赛信创赛道华北赛区区域赛圆满结束。经过激烈角逐&#xff0c;GBASE参赛作品「多模多态企业级分布式数据库」GBase 8c荣获华北赛区一等奖&#xff0c;将被选送到全国总决赛&#xff0c;参与最后的冠军角逐。 数字中国创新大赛信创赛道是我国…

RIS/PACS系统源码,工作站无缝集成三维重建模块,实现极速的三维后处理

RIS/PACS系统源码 带三维重建和还原的PACS源码 RIS/PACS系统源码在预约登记、分诊叫号、技师检查、诊断报告、临床浏览、科室管理等环节满足全院相关科室的要求。在医学影像下载、浏览、处理中满足速度快、强化常用功能、方便阅片等要求。满足放射、超声、内镜、病理等影像科…

REMIX:重构·连接·进化|徐亚波博士D3大会演讲实录

“欢迎大家和数说故事一起来到新世界&#xff0c;和我们一起&#xff0c;来玩一个AI普适场景的无限游戏。” 在数说故事第六届D3智能营销峰会上&#xff0c;数说故事创始人兼CEO徐亚波博士带来「REMIX——重构连接进化」的主题分享&#xff0c;聚焦“ChatGPT开启的AGI时代有什么…

分块思想(Sqrt Decomposition)的实现(golang)

前言 Sqrt Decomposition 是一种数据结构&#xff0c;能够在O(1)时间复杂度内完成数组元素值的查询和更新&#xff0c;在 O ( n ) O(\sqrt{n}) O(n ​) 时间复杂度内完成数组某个区间属性值的查询和批量更新某个区间的值。这里的属性 可以是区间的和、最小值、最大值等。 说到…

DDR3(MIG核配置官方demoFPGA代码实现及仿真)

由于直接对 DDR3 进行控制很复杂&#xff0c;因此一般使用 MIG IP 来实现&#xff0c;同时为了更简单地使用 MIG IP&#xff0c;我们采用 AXI4 总线协议进行控制。下面首先介绍 MIG IP 的配置&#xff0c;然后看看官方 demo &#xff08;里面包含一个仿真要用到的 DDR3 模型&am…

Android Jetpack:利用Palette进行图片取色

与产品MM那些事 新来一个产品MM&#xff0c;因为比较平&#xff0c;我们就叫她A妹吧。A妹来第一天就指出&#xff1a;页面顶部的Banner广告位的背景是白色的&#xff0c;太单调啦&#xff0c;人家不喜欢啦&#xff0c;需要根据广告图片的内容自动切换背景颜色&#xff0c;颜色…

送了老弟一台 Linux 服务器,它又懵了!

大家好&#xff0c;我是鱼皮。 前两天我学编程的老弟小阿巴过生日&#xff0c;我问他想要什么礼物。 本来以为他会要什么游戏机、Q 币卡、鼠标键盘啥的&#xff0c;结果小阿巴说&#xff1a;我想要一台服务器。 鱼皮听了&#xff0c;不禁称赞道&#xff1a;真是个学编程的好苗…