linux终端进程管理,Linux进程管理工具及作业控制(马哥笔记)

Linux进程查看及管理的工具:pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

Process:运行中的程序的一个副本

存在生命周期

linux内核存储进程信息的固定格式:task struck

多个任务的task struck组件的链表:task list

进程创建

init

父子关系

进程:都由其父进程创建

fork(),clone()

进程优先级:

0-139:

1-99:实时优先级,数值越大, 优先级越高

100-139:静态优先级,数值越小,优先级越级高

Nice值:-20,19,依次对应100-139

Big O

O(1),O(logn),O(n),O(n^2),O(2^n)

进程内存:

Page Frame:页框,用于存储页面数据

MMU:Memory Management Unit负责转换线性和物理地址

IPC:Inter Process Communication

同一主机上:

signal

shm:shared memory

semerpher

不同主机上:

rpc:remote procecure call

socket

Linux内核:抢占式多任务

进程类型:

守护进程:daemon,在系统引导过程中启动的进程,跟终端无关

用户进程:跟终端相关,通过终端启动的进程

注意:也可把在前台启动的进程送至后台,以守护模式运行

进程状态:

运行态:running

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

停止态:暂停于内存中,但不会被调度,除非手动启动之

僵死态:zombie

进程的分类:

CPU-Bound

IO-Bound

I/O:分时复用

linux进程查看及管理工具:pstree, ps, pidof,pgrep, top, htop, glance, pmap, vmstat, dstat, kill,pkill, job, bg, fg, nohup

pstree命令

pstree 命令:

pstree - display a tree of processes

ps: process state

ps - report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID 目录下的各文件中

ps [OPTION]...

选项:支持两种风格

常用组合:aux

u:以用户为中心组织进程状态信息显示

a:与终端无关的进程

x:与终端无关的进程

[root@danran ~]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

PID:进程号

%CPU:CPU使用率

%MEM:内存使用率

VSZ:Virtual memory Size 虚拟内存集

RSS:ReSident Size:常驻内存集,一般小于虚拟内存集

tty:终端

STAT:进程状态

R:running

S:interruptable sleeping

D:uninteruptable sleeping

T:stopped

Z:zombie

+:前台进程

l:多线程进程

L:内存分页并带锁

N:低优先级进程

<:>

s:session leader,会话子进程发起者

START:启动时间

TIME:运行占用CPU的累计时长

COMMAND:表示启动进程的命令

常用组合:-ef

-e:显示所有进程

-f:显示完整格式的程序名称

常用组合:-ejH

以进程层级格式显示进程相关信息(树状显示)

-j:BSD格式的任务格式

-H:显示树状结构

j :BSD风格的任务控制格式

常用组合:-eFH

-F:显示网整格式的进程信息

-H:以进程层级格式显示进程相关信息

常用组合:-axZ

-Z:表示Selinux的安全上下文标签

-a:显示所有进程

-x:显示没有终端的进程

常用组合:-eo,axo

-eo pid,tid class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni:nice值

pri:priority,优先级

psr:processor,CPU

rtprio:实时优先级

epid:表示真实用户

ppid:父进程

pgrep

pgrep [options] pattern

pkill [options] pattern

-u UID:指明有效用户的进程

-U uid:指明真实用户的进程

-t terminal:跟指定终端相关的进程

-a:显示完整格式的进程名

-l:显示进程名

-P pid:显示其父进程为此处指定进程的进程列表

pidof

根据进程名获取其PID

top

有许多内置命令

排序:

P:以占据的CPU百分比;

M:占据内存百分比

T:累积占据CPU时长

首部信息显示:

uptime信息:l命令

tasks及CPU信息:t命令

CPU分别显示:1(数字)

memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

选项:

-d #:指定刷新时间间隔,默认为3s

-b:以批次方式全部显示

-n #:显示多少批次

栏位信息简介

us:用户空间

sy:内核空间

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

htop

epel源下载安装

htop命令

选项:

-d #:指定延迟时间

-u Username:仅显示指定用户的进程

-s COLOMN:以指定字段进行排序

命令

s:跟踪选定进程的系统调用

l:显示选定进程打开的文件列表

a:将选定的进程绑定至某CPU核心

t:显示进程数

注意:Fedora-EPEL源

Linux进程查看及管理的工具:pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup

vmstat命令

vmstat [options] [delay [count]]

procs:

r:等待运行的进程的个数

b:处于不可中断睡眠态的进程个数,(被阻塞的队列的长度)

memory:

swpd:交换内存的使用总量

free:空闲物理内存总量

buffer:用于buffer的内存总量

cache:用于cache的内存总量

swap:

si:数据进入swap中的数据速率(kb/s)

so:数据离开swap中的数据速率(kb/s)

io:

bi:从块设备读入数据到系统的速率(kb/s)

bo:保存数据至块设备的速率(kb/s)

system:

in:interrupts,中断速率

cs:context switch,进程切换速率

cpu:

us:用户空间占据CPU的比率

sy:内核空间占据CPU的比率

id:空闲空间占据CPU的比率

wa:等待IO完成所消耗的比率

st:被虚拟化偷走的CPU比率

选项:

-s:显示内存统计数据

pmap(内存映射)

NAME

pmap - report memory map of a process(内存映射表)

格式:

pmap [options] pid [...]

-x:显示详细格式的信息

另外一种实现:

cat /proc/PID/maps

glances

epel源安装

http://172.16.0.1/fedora-epel/7/x86_64 epel源

客户端和服务端都需要安装glances工具

使用glances工具时需要关闭防火墙

glances使用格式

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

内建命令:

a Sort processes automatically

c Sort processes by CPU%

m Sort processes by MEM%

p Sort processes by name

i Sort processes by I/O rate

d Show/hide disk I/O stats

f Show/hide file system stats

n Show/hide network stats

s Show/hide sensors stats

y Show/hide hddtemp stats

l Show/hide logs

b Bytes or bits for network I/O

w Delete warning logs

x Delete warning and critical logs

1 Global CPU or per-CPU stats

h Show/hide this help screen

t View network I/O as combination

u View cumulative network I/O

q Quit (Esc and Ctrl-C also work)

常用选项:

-b:以Byte为单位显示网卡数据速率

-d:关闭磁盘I/O模块

-f /path/to/somefile:设定输入文件位置

-o {HTML|CSV}:输出格式

-m:禁用mount模块

-n:禁用网络模块

-t #:延迟时间间隔

-1:每个CPU的相关数据单独显示

C/S模式下运行glances命令

服务模式

glances -s -B IPADDR

IPADDR:指明监听本机哪个地址

客户端模式:

glances -c IPADDR

IPADDRR:要连入的服务器端地址

dstat

格式:

dstat [-afv] [options..] [delay [count]]

选项:

-c:显示cpu相关信息

-C#,#,...,total单独显示指定Cpu的信息

-d:显示disk读写速率等相关信息

-D:total,sda,sdb...单独显示指定磁盘的信息

-g:显示page相关统计数据(换进换出)

-i:显示统计的详细信息

-l:仅显示load(负载)

-n:显示network的相关统计数据

-m:只显示memory的相关统计数据

-p:显示process的相关统计数据

-r:显示io请求相关的统计

-s:显示swapped相关的统计数据

--tcp:显示tcp协议相关统计数据

--udp:显示udp协议的相关统计数据

--socket:显示socket文件的统计数据

--raw:裸套接字文件的统计数据

--ipc:进程间通信的统计数据

--top-cpu:显示最占用CPU的进程

--top-io:显示最占用io的进程

--top-mem:显示最占用内存的进程

--top-lantency:显示延迟最大的进程

dstat 1 每秒刷新一次

d6ca7bcb0a46f21fa7af4af3fc246b600d33aef2.jpg

total-cpu-usage:cpu使用状态

dsk/total:磁盘读写速率

net/total:网络收发速率

paging:页面的换进换出速率

systea:中断和上下文切换的速率

dstat -D total,sda -C 0,total 显示sda磁盘,CPU0的详细信息

e7cd7b899e510fb3b6336137d333c895d1430c63.jpg

kill命令

向进程发送控制号,以实现对进程管理

显示当前系统可用信号

kill -l

man 7 signal

常用信号(SIGNAL):

1)SIGHUP:无需关闭进程而让其重读配置文件

2)SIGINT:中止正在运行的程序,相当于Ctrl+c

9)SIGKILL:杀死正在运行的进程

15)SIGTERM:终止正在运行的进程

18)SIGCOUT:处于停止态的继续运行

19)SIGSTOP:让进程处于停止状态

指定信号的方法:

1) 信号的数字标识:1,2,9

2) 信号完整名称:SIGHUP

3) 信号的简写名称:HUP

向进程发信号:

kill [-SIGNAL] PID...

kill -15 2440 杀死ID号为2440的进程

kill -SIGINT 2440

终止“名称”之下的所有进程

killall [-SIGNAL] Program

Linux作业控制

前台作业:通过终端启动,且启动后一直占据终端

后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)

如何让作业运行于后台:

1):运行中的作业

Ctrl+z

2):尚未运行的作业

COMMAND &

此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系:

nohup COMMAND &

查看当前终端所有作业:

jobs

作业控制:

fg [[%]JOB_NUM]:把指定的后台作业调回前台(JOB_NUM为后台作业ID)

bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行

kill [[%]JOB_NUM]:中止指定作业

并行运行

同时运行多个进程,提高效率

方法1

vim all.sh

f1.sh & <==> ping 127.0.0.1 &

f2.sh & <==> ping 192.168.198.134 &

f3.sh &

方法2

(f1.sh &);(f2.sh &);(f3.sh &)

(ping 127.0.0.1 &);(ping 192.168.198.134 &)

方法3

{ f1.sh & f2.sh & f3.sh & }

{ ping 127.0.0.1 & ping 192.168.198.134 & }

进程优先级调整

静态优先级:100-139

进程默认启动时的nice值为0,优先级为120

nice命令:(启动进程时指定nice值)

nice [OPTION] [COMMAND [ARG]...]

nice -n 5 htop htop进程启动的nice值为5,优先级为125,数值越小,优先级越高

nice,renice

renice命令(修改以启动进程的nice值)

renice [-n] priority [-gpu] identifier...

renice -n 2 htop

查看:

ps axo pid,comm,ni

未涉及的命令:sar,tsar,iostat,iftop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
马哥Linux学习笔记是一份关于Linux基础入门及安装系统、文件目录的学习资料。这份学习笔记涵盖了Linux开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别,FHS(文件系统层次标准)的定义以及Linux手册的不同章节。其中,GPL是GNU General Public License的缩写,BSD是一种开源许可证,MIT也是一种开源许可证,Mozilla是Mozilla Public License的缩写,Apache是Apache License的缩写,而LGPL是Lesser General Public License的缩写。FHS定义了Linux系统中各个目录应该存放的文件数据,确保不同开发人员在目录配置上的统一。Linux手册被分为多个章节,每个章节包含不同类型的帮助内容,例如用户命令、系统调用、设备文件和特殊文件、配置文件格式等。马哥Linux学习笔记提供了这些重要的知识和理解,帮助读者更好地学习和理解Linux操作系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux学习笔记](https://blog.csdn.net/weixin_42593895/article/details/126044983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [马哥笔记第一周作业(linux基础了解)](https://blog.csdn.net/jyjyhhh/article/details/127380718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值