IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux中的进程管理 -> 正文阅读

[系统运维]Linux中的进程管理

1、进程的意义

(1)进程的定义

程序是静态的代码文件;进程是程序的一个副本,指程序运行时的形态。

程序是有生命周期的:准备期、运行期、终止期

(2)进程和线程

进程是资源调用的最小单位;线程是进程的最小单位。

进程的执行是从上到下贯穿运行的;当进程是多任务、CPU是多核心时,多任务应该同时被每个核心处理,每个核心处理的任务叫线程;线程资源是共享的

(3)进程状态

R(TASK_RUNNING)? ? ? ? ? ? ? ? ##可执行态(running,ready)

S(TASK_INTRRUPTABLE)? ? ? ? ? ? ? ? ##可唤醒休眠

D(TASK_UNINTRRUPTABLE)? ? ? ? ? ? ? ? ##不可唤醒的休眠

T(TASK_STOP)? ? ? ? ? ? ? ? ##暂停状态

Z(EXIT_ZOMBIE)? ? ? ? ? ? ? ? ##僵死态

2、进程的查看命令

gnome-system-monitor? ? ? ? ? ? ? ? ##图形查看进程

ps? ? ? ? ? ? ? ? ##查看进程(3种执行风格:Unix、bsd、GNU)

ps? a? ? ? ? ? ? ? ? ##查看与终端相关的进程(用户登录系统后产生的进程都是带终端的)

ps? x? ? ? ? ? ? ? ? ##查看与终端无关的进程

ps? u? ? ? ? ? ? ? ? ##以用户信息归类的方式查看进程

ps? f? ? ? ? ? ? ? ? ##进程层级关系

ps? o? ? ? ? ? ? ? ? ##显式指定参数查看进程(pid,comm,nice,pri,pcpu,ppid,stat,user,group..)

ps? -e? ? ? ? ? ? ? ? ##显示所有进程

ps? -f? ? ? ? ? ? ? ? ##显示信息的完整格式

ps? -H? ? ? ? ? ? ? ? ##显示进程的层级结构

ps? -o? ? ? ? ? ? ? ? ##显式指定参数

ps? --sort=? ? ? ? ? ? ? ? ##以某进程参数的正向排序显示进程

ps ax显示的进程信息如下:

PID? ? ? ? ? ? ? ? ##进程id

TTY? ? ? ? ? ? ? ? ##进程用到的终端

STAT? ? ? ? ? ? ? ? ##进程状态

TIME? ? ? ? ? ? ? ? ##进程占用CPU时长

COMMAND? ? ? ? ? ? ? ? ##进程名称

ps? aux显示的进程信息如下:

USER? ? ? ? ? ? ? ? ##进程所属用户

PID? ? ? ? ? ? ? ? ##进程id

%CPU? ? ? ? ? ? ? ? ##进程使用CPU用量

%MEM? ? ? ? ? ? ? ? ##进程使用内存用量

VSZ? ? ? ? ? ? ? ? ##进程使用的虚拟内存大小

RSS? ? ? ? ? ? ? ? ##进程常驻内存中的数据大小

TTY? ? ? ? ? ? ? ? ##进程用到的终端

STAT? ? ? ? ? ? ? ? ##进程状态

START? ? ? ? ? ? ? ? ##进程运行时长

TIME? ? ? ? ? ? ? ? ##进程占用CPU时长

COMMAND? ? ? ? ? ? ? ? ##进程名称

进程过滤:

pgrep? -u? uid? ? ? ? ? ? ? ?##显式指定用户的进程

pgrep? -U? user? ? ? ? ? ? ? ? ##显示指定用户的进程

pgrep? -t? tty? ? ? ? ? ? ? ? ##显式指定终端的进程

grep? -l? "进程"? ? ? ? ? ? ? ? ##显示进程名称

pgrep? -a? "进程"? ? ? ? ? ? ? ? ##显示进程的完整名称?

pgrep? -P? “进程”? ? ? ? ? ? ? ? ##显示下时进程的子进程

pidof? vim? ? ? ? ? ? ? ? ##产看vim的pid

动态进程查看:

top

top命令的参数:

top? -d? 3? ? ? ? ? ? ? ? ##3秒刷新一次(刷新频率参数)

top? -b? ? ? ? ? ? ? ? ##以批次方式显示

top? -n? ? ? ? ? ? ? ? ##指定显示的批次数量

top内部指令:

P? ? ? ? ? ? ? ? ##CPU排序

M? ? ? ? ? ? ? ? ##内存排序

T? ? ? ? ? ? ? ? ##累计占用CPU排序

l? ? ? ? ? ? ? ? ##关闭/开启uptime信息

t? ? ? ? ? ? ? ? ##关闭/开启CPU&task

s? ? ? ? ? ? ? ? ##指定刷新频率

k? ? ? ? ? ? ? ? ##操作进程

u? ? ? ? ? ? ? ? ##查看指定用户进程

显示内容解释:

22:47:30 ?????????????? ##系统时间

up? ? ? ? ? ? ? ? ? ##运行时长

users? ? ? ? ? ? ? ? ##系统中有两个用户登录

load average:? ? ? ? ? ? ? ? ##时间越大越差

Tasks:

total? ? ? ? ? ? ? ? ##任务总量

running? ? ? ? ? ? ? ? ##正在运行

sleeping? ? ? ? ? ? ? ? ##休眠进程数量

stopped? ? ? ? ? ? ? ? ##被暂停进程数量

zombie? ? ? ? ? ? ? ? ##僵死进程数量

%Cpu(s):

us? ? ? ? ? ? ? ? ##用户空间

sy? ? ? ? ? ? ? ? ##内核空间

ni? ? ? ? ? ? ? ? ##nice值调整空间

id? ? ? ? ? ? ? ? ##空闲时间

wa? ? ? ? ? ? ? ? ##等待io处理时间

hi? ? ? ? ? ? ? ? ##处理硬件中断时间

si? ? ? ? ? ? ? ? ##处理软件中断时间

st? ? ? ? ? ? ? ? ##vm使用时间(被偷走的时间)

MiB Mem:

total? ? ? ? ? ? ? ? ##内存总量

free? ? ? ? ? ? ? ? ##内存空闲容量

used? ? ? ? ? ? ? ? ##内存占用容量

buff/cache? ? ? ? ? ? ? ? ##缓存

MiB Swap? ? ? ? ? ? ? ? ##交换分区用量

PID? ? ? ? ? ? ? ? ##进程id

USER? ? ? ? ? ? ? ? ##进程所属者的用户名

PR? ? ? ? ? ? ? ? ##优先级

NI? ? ? ? ? ? ? ? ##nice值

RES? ? ? ? ? ? ? ? ##进程使用的、未被换出的物理内存大小,单位kb(RES=CODE+DATA)

VIRT? ? ? ? ? ? ? ? ##进程使用的虚拟内存总量,单位kb(VIRT=SWAP+RES)

SHR? ? ? ? ? ? ? ? ##共享内存大小,单位kb

S? ? ? ? ? ? ? ? ##进程状态(D=不可中断的睡眠;R=运行中;S=睡眠状态;T=跟踪/停止状态;Z=僵尸进程)

%CPU? ? ? ? ? ? ? ? ##上次更新到现在的CPU时间占用百分比

%MEM? ? ? ? ? ? ? ? ##进程使用的物理内存百分比

TIME+? ? ? ? ? ? ? ? ##进程使用的CPU时间总计,单位1/100秒

COMMAND? ? ? ? ? ? ? ? ##命令名称

3、进程的优先级

系统是多任务多用户的操作模式;通过“优先级”概念来对系统任务的重要性进行区分。

优先级范围:0——139

其中内核自控的优先级范围为:0——99;用户可控优先级范围为:100——139

优先级的2个表示方式:(值越小优先级越高)

nice值(静态优先级):范围为 -20——19

pri(priority)值(动态优先级):范围为 100——139

优先级的调整:

renice? -n? “nice值”? 进程号? ? ? ? ? ? ? ? ##更改某进程的优先级

nice? -n? “nice值”? 进程名称? ? ? ? ? ? ? ? ##指定优先级打开进程

某一指定进程的状态:

S? ? ? ? ? ? ? ? ##sleeping(休眠中)

<? ? ? ? ? ? ? ? ##优先级高

s? ? ? ? ? ? ? ? ##顶级进程

T? ? ? ? ? ? ? ? ##进程暂停中(stop)

N? ? ? ? ? ? ? ? ##优先级低

R? ? ? ? ? ? ? ? ##running(运行中)

+? ? ? ? ? ? ? ? ##运行在前台

4、进程的调用

【ctrl】【z】? ? ? ? ? ? ? ? ##把占用shell的进程打入后台挂起

bg? ? ? ? ? ? ? ? ##将后台挂起的进程运行起来(不加jobs号默认运行状态为+的进程)

fg? ? ? ? ? ? ? ? ##将后台进程调回前台

&? ? ? ? ? ? ? ? ##直接在后台运行进程

jobs? ? ? ? ? ? ? ? ##查看当前shell中在后台的所有工作

5、进程信息号

进程信号:

1? ? ? ? ? ? ? ? ##重新加载进程的系统配置文件

2? ? ? ? ? ? ? ? ##清空内存中的进程数据

3? ? ? ? ? ? ? ? ##清空内存中的鼠标标志(效果等同 ctrl+\)

9? ? ? ? ? ? ? ? ##强行结束进程(不会被阻塞)

15? ? ? ? ? ? ? ? ##正常关闭进程(会被阻塞)

18? ? ? ? ? ? ? ? ##运行被暂停的进程

19? ? ? ? ? ? ? ? ##暂停进程(不会被阻塞)

20? ? ? ? ? ? ? ? ##暂停进程(会被阻塞)

进程信号控制:

kill? -进程信号? pid????????????????

killall? -进程信号? 进程名字

pkill? -进程信号? 进程条件(比如用户)

6、守护进程

守护进程名称:systemd

守护进程的意义:

替内核分担程序管控的作用,本身是一种程序;通常pid=1

守护进程提供的操作命令:systemctl ;用户可通过此命令来管理系统的服务(服务:系统中开启的共享系统资源到网络中的程序)

systemctl 的使用:

start? ? ? ? ? ? ? ? ##开启服务

stop? ? ? ? ? ? ? ? ##关闭服务

status? ? ? ? ? ? ? ? ##查看服务状态

reload? ? ? ? ? ? ? ? ##重新加载

restart? ? ? ? ? ? ? ? ##重启服务

enable? ? ? ? ? ? ? ? ##设定服务开机启动

enable? --now? ? ? ? ? ? ? ? ##设定服务开机启动并现在开启服务

disable? ? ? ? ? ? ? ? ##设定服务禁止开机启动

disable? --now? ? ? ? ? ? ? ? ##设定服务开机不启动并现在关闭服务

list-units? ? ? ? ? ? ? ? ##查看系统所有服务当前的状态

list-unit-files? ? ? ? ? ? ? ? ##查看服务开机状态

list-dependencies? ? ? ? ? ? ? ? ##列出服务依赖性

mask? ? ? ? ? ? ? ? ##冻结服务

umask? ? ? ? ? ? ? ? ##解冻服务

get-default? ? ? ? ? ? ? ? ##查看系统运行模式

set-default? graphical.target? ? ? ? ? ? ? ? ##设置系统运行模式为有图形的网络模式

set-default? multi-user.target? ? ? ? ? ? ? ? ##设置系统运行模式为无图形的网络模式

系统运行模式:(0---6)

***通过 init 命令控制

0? ? ? ? ? ? ? ? ##关机

1? ? ? ? ? ? ? ? ##单用户模式

2? ? ? ? ? ? ? ? ##多用户模式

3? ? ? ? ? ? ? ? ##无图形界面模式(完全多用户模式)

4? ? ? ? ? ? ? ? ##没用到

5? ? ? ? ? ? ? ? ##图形化界面模式

6? ? ? ? ? ? ? ? ##reboot

7、系统中的登陆审计

w? ? ? ? ? ? ? ? ##显示正在登陆系统的用户

w? -i? ? ? ? ? ? ? ? ##显示正在登陆系统的用户并显示来源

w 的输出保存在 /var/run/utmp

last? ? ? ? ? ? ? ? ##显示登陆成功但现已退出的用户

last 的输出保存在 /var/log/wtmp

lastb? ? ? ? ? ? ? ? ##显示试图登录但未成功登陆的用户

lastb 的输出保存在 /var/log/btmp

? ??

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 08:14:35  更:2021-07-28 08:15:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 6:36:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码