linux系统管理之进程管理

进程管理的操作命令

为了管理这些linux进程,用户应该能够:

查看所有运行中的进程

查看进程消耗资源

定位个别进程并且对其执行指定操作

改变进程的优先级

杀死指定进程

限制进程可用的系统资源等

linux提供了许多命令来让用户来高效掌控上述的操作;

1.pstree - 显示进程的树状图来展示进程间关系

linux中,每一个进程都是由其父进程创建的。此命令以可视化方式显示进程,通过显示进程的树状   图来展示进程间关系。如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1)。

2.ps -

Linux 中最基础的浏览系统中的进程的命令。能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等。下述选项可以得到更多有用的消息。

三种风格的选项options:

UNIX options, which may be grouped and must be preceded by a dash.

BSD options, which may be grouped and must not be used with a dash.

GNU long options, which are preceded by two dashes.

BSD-style

a:显示所有与终端相关的进程

x:显示所有与终端无关的进程

u:显示发起进程的用户的名称

常用三者组合,aux

显示结果:

其显示的结果各字段的含义:

USER:进程所有者

PID:进程标识符

%CPU:进程所占CPU处理时间的百分比

%MEM:进程占用内存百分比

VSZ:虚拟内存集(可交换内存集)

RSS:常驻内存集

TTY:进程与哪个终端相关,标识与终端无关

STAT:进程的状态,如下:

R:running正在运行的进程;

S:interuptible sleep,可中断睡眠状态;

D:uninteruptible sleep,不可中断睡眠状态;Disk Block;

T:Trace/STOPPED:被跟踪/已停止

Z:Zombie,僵死态 父进程已消失

+: 表示是一个前台进程;

l:包含多线程的进程

<: 高优先级进程

N:低优先级进程

s:Session leader  有子进程的父进程;

START:进程开始执行时的时间戳

TIME:进程累计的cpu占用时间;

COMMAND:启动进程的命令行参数

UNIX风格的选项:

-e:显示所有进程

-f:显示完整格式的进程信息

-F:与-f几乎相同

常用选项组合:-ef

其结果如下:

虽然跟ps aux所显示的结果类似,但也有不同之处:

PPID:父进程的pid

C:进程占用的CPU时间百分比

3.pgrep, pkill - look up or signal processes based on name and other attributes

根据进程名称或者其他属性查看进程或向进程发送信号

pgrep [opts] pattern

常用选项:

-u uid:显示进程的有效用户

-U uid:显示进程的真实用户

-t TERM:显示与指定终端相关的进程

-l:显示进程名称和PID

-a:显示进程的完整参数

4.pidof -- find the process ID of a running program。

显示指定进程的PID

5.top - display Linux processes

这个命令显示的内容还是毕竟详尽的:

首先是top的首部:

top - 16:47:00 up  7:53,  1 user,  load average: 0.00, 0.01, 0.05

Tasks: 393 total,   1 running, 392 sleeping,   0 stopped,   0 zombie

%Cpu(s):  0.1 us,  0.2 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  1001360 total,   542116 free,   201176 used,   258068 buff/cache

KiB Swap:  2097148 total,  2097148 free,        0 used.   599600 avail Mem

第一行:uptime信息

当前系统时间 系统运行时长 当前登录系统的用户总数 过去的1,5,15分钟三个时间段的在CPU上等待运行的进程队列的平均长度

第二行:系统中运行的进程总数 正在运行的 睡眠状态的 已停止的 僵死态的

第三行:CPU的占用百分比

us:user space 用户空间的进程占用的cpu时间的百分比

sy:system 内核空间的内核进程占用的cpu时间百分比

ni:使用nice值调整了进程优先级之后,额外多占用的cpu时间的百分比

id:idle,cpu空闲时间的百分比,一般为10-20%;

wa:waiting,等待IO完成所消耗的CPU时间的百分比

hi:hardware interrupting,处理硬件中断事件所消耗的CPU时间的百分比

si:software interrupting,处理软件中断事件所消耗的CPU时间的百分比

st:stolen,被虚拟化程序等偷走的cpu时间的百分比

第四行:以KB为单位显示物理内存空间的使用情况

total:物理内存的总大小

free:空闲的物理内存空间大小

used:已经被使用的物理内存空间大小

buff/cache:缓冲区和缓存区所消耗的物理内存大小;随时可以回收

第五行:以KB为单位显示交换分区SWAP空间的使用情况

‘total‘  ‘used‘  ‘free‘  ‘avail Mem‘

首部之后的内容 就类似与ps aux了

PID  USER  PR  NI  VIRT  RES  SHR S %CPU  %MEM  TIME+ COMMAND

top是前台进程,具有交互式命令如下:

1 显示/隐藏CPU核心信息

P 根据CPU占用百分比排序

M 根据物理内存占用百分比进行排序

T 根据累计CPU占用时间进行排序

l 关闭/显示uptime信息

t 关闭/显示第二三行信息

m 关闭/显示第四五行信息

q 退出top交互模式

s 修改top的刷新时间间隔

k 终止指定PID的进程

常用选项:

-d #:相当于交互模式里的s,指定刷新的时间间隔;默认3.0s

-b:按照批次显示进程信息

-n #:与-b一起使用,标识显示多少批次

6.vmstat - 报告虚拟内存的统计信息

用法:vmstat [options] [delay [count]]

options:

-s 统计内存使用的相关信息  /proc/meminfo文件中提取的信息;

delay:按照默认是s为时间,重复执行这个命令

count:指定要执行vmstat的次数

输出信息的格式如下:

各字段含义如下:

procs

r running运行中

b block阻塞态

memory

swpd

free

buff

cache

swap

si swap in 页框进入swap空间

so swapout swap空间拿出去到页框

io

bi blockin   加载到内存过程

bo blockout 内存保存数据到块设备

system

in interrupt  中断

cs  上下文切换

cpu

us userspace

sy

id idle

wa waiting

st stolen

7.pmap - report memory map of a process  进程映射表

用法:pmap [options] pid [...]  参考/proc/DIGIT(pid)/maps

要修改proc目录下PID目录下的文件 不能用vim,而是echo > 重定向的方式

options:-x,--extended : 显示一些扩展信息,如RSS Dirty;

8.htop,glances dstat

htop -  增强版top,个人认为格式比top更美观

用法:htop [-dChusv]

选项:

-d #:htop刷新的时间间隔

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

-s COLUME_NAME:根据指定字段进行排序

交互式命令:

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

t/F5:显示进程树结构

a:选定的进程绑定到某指定的CPU核;

glances - A cross-platform curses-based monitoring tool

用法:glances [-bdhmn1]  [-t refresh] [-f file] [-o output]

常用选项:

-b:K Byte为单位,显示网卡的数据速率

-d 关闭磁盘的IO模块

-m 关闭Mount模块

-n 关闭Network模块

-1 单独显示每颗CPU核心的数据统计信息

-t # 设定刷新时间间隔

-o {HTML|CSV}  为输出数据指定输出的格式

-f /PATH/TO/OUTPUT_DIR 指定输出文件的路径,默认输出文件名为glances.html或者glances.csv

此命令 可以工作于C/S模式下;

S:服务器模式

glances -s -B IPADDR

这里的IPADDR是服务器本地的某个IP地址;

C:客户端模式

glances -c IPADDR

这里的IPADDR是远程服务器指定监听的IP地址

进程之间是可以通信的,但是不能随意通信;linux内核管理进程方式--单独管理;

  IPC--Inter-Process Communication

  1.signal

  2.semaphore

  3.shared memory(SHM)共享内存

  4.socket

dstat:

用法:dstat [-afv] [options..] [delay [count]]

常用选项:

-c --cpu

-d --disk

-n --net

-g --paging

-y --sys

以上五个为默认选项

--tcp

--udp

“杀死”终止进程的命令 -- kill pkill kilall

1.kill - teminate a process

用法 kill [-s signal] pid..

查看信号signal的信息: kill -l

有效信号的标识方法

1.使用数字编码

2.完整名称

3.简写名称,即不包含‘SIG’的其余部分

常用信号:

1)SIGHUP 无需关闭对应进程而让其重新选取自身的配置文件

2)SIGINT 一般用于终止正在运行的前台进程   相当于Ctrl+C

9)SIGKILL 没有任何预兆的终止正在运行的进程,‘残暴值‘五颗星!

15)SIGTERM 默认信号,终止正在运行的进程,但允许进程‘料理后事‘

18)SIGCONT 让转入后台的进程继续运行

19)SIGSTOP 让进程转入后台并停止运行

2.killall - kill processes by name

用法:killall PRO_NAME

3.pkill -

根据模式匹配(PATTERN)来进行终止进程;可能会误终止其他进程

进程作业管理命令:

jobs,bg,fg

前面介绍到,进程有前台进程和后台进程,那么如何让作业工作与后台?

1.对于正在运行的前台作业:Ctrl+z

注意:实际上是向此进程发送了19号信号,转入后台后即停止运行

2.对于尚未启动的作业,使其启动并转入后台:

# COMMAND &

注意:此类作业是从前台启动,但是启动后立即转入后台,但即便如此,此进程也是与终端相          关联的进程;如果终端关闭,则此类进程也会终止;

3.对于尚未启动的作业,使其启动并转入后台,且同时解除与终端的关联

# nohup COMMAND &

查看后台作业:

jobs

将后台作业转入前台运行

fg [JOB_ID]

使后台作业在后台运行:

bg [JOB_ID]

终止后台作业:

kill %JOB_ID

kill %1

调整进程优先级的命令

nice - run a program with modified scheduling priority

用法:nice [OPTION] [COMMAND [ARG]...]

选项  -n NICE:指定nice值 默认为10

renice - alter priority of running processes

用法:renice [-n] priority pid...

选项:

-n NICE 调整指定nice值,在原有的nice值的基础上+NICE

时间: 2024-08-02 22:19:06

linux系统管理之进程管理的相关文章

Linux系统管理(一)——进程管理

************************************如有写错或者不准之处还请指出************************************ 1-1Linux进程介绍与进程管理的作用 Linux系统管理员面临的最复杂的任务之一就是追踪运行在系统中的程序.想要监看这些运行的 程序,那就要熟悉ps命令的用法.下面将介绍ps,pstree,top,kill,killall,pkill和nice等命令. (1)进程简介 进程:是指当程序运行在系统上时,称之为进程.(或者另

Linux系统管理10——进程和计划任务管理

Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代码 ·父.子进程:每一个进程可以创建一个或多个进程 二.静态查看进程统计信息 ps命令 1.ps aux 命令 (1)作用:以简单列表的形式显示出进程信息 (2)选项释义: a:显示当前终端下的所有进程信息,包括其他用户的进程 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程

Linux 系统管理04--账号管理

Linux系统管理04--账号管理 一.用户账号管理 1.用户账号概述 (1)用户账号的常见分类: 1>超级用户:root uid=0 gid=0 权限最大. 2>普通用户:uid>=500 做一般权限的系统管理,权限有限.(500<uid<60000) 3>程序用户:1=<uid<500 为了提升系统安全性,为了支持所对应服务对系统资源 的使用,不能用于登录系统或管理系统. (2)UID:用户标识 (3)用户账号文件 1>  /etc/passwd

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件 前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的,但是在某些情况下,想要查看某个文件或者某个设备被哪些进程所使用,使用ps.pgrep等命令查询的是不够准确的,而且有些时候并不是简单的去打开某个文本文件一样,这样还可以进行搜索过滤出来.而在linux系统中,除了常见的配置文件.日志文件等文本文件,几乎任何对象都会被内核映射去该有的文件,比如磁盘设备.挂载点等.当要知道那些用户通过哪些进程来在访问或者使用此文

linux应用开发-进程管理

linux应用开发-进程管理 一 进程 一个组成部分是操作系统用来管理进程的内核对象,内核对象是系统用来存放进程的统计信息的地方 1 每个进程都有一个父进程 2 子进程终止,父进程会得到通知并能去的进程的退出状态 3 命名空间 类似有C++的namespace 4 进程组 每个进程都有一个进程组,都有一个进程组号=组长PID 进程组组长-groupleader 5 会话期session是一个或多个进程组的集合 setsid可以创建会话期 6 相关换算 2^10 = 1K 2^20 = 1M 2^

Linux学习之进程管理(十九)

Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps -le 查看系统中所有进程,使用Linux标准命令格式 选项 l:显示详细信息 e:显示所有进程 USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越消耗资源. %MEM:该进程占用物理内存的百分比,占用越高,进程越消耗资源. VSZ:

Linux系统管理之磁盘管理与文件系统

Linux系统管理之磁盘管理与文件系统 一.前言 管理磁盘是管理员的重要工作内容,本文主要介绍以下几个方面 磁盘结构及分区表示 管理磁盘及分区 管理文件系统 二.磁盘(无尘环境制造)结构及分区 1.物理结构 盘片:硬盘有多个盘片,每盘片2面 磁头:每面有一个磁头 2.数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据 磁道:同一盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面 多个扇区组成磁道,多个相同直径的磁道组成柱面 笔记本的磁盘一般是2.5英寸,7mm厚度和9.5

linux下的进程管理(进程的基本了解及查看pstree,ps,pgrep命令)

Linux下的进程管理 1.什么是进程?程序是静态的文件进程是运行中的程序的一个副本进程存在生命周期(准备期,运行期,终止期)2.进程状态 状态 定义 R(TASK_RUNNING) . 可执行状态(RUNNING,READY)running:正在被处理 ready: 在排队, cpu处理进程个数有限 S(TASK_INTERRUPTIBLE) 可唤醒状态 :在cpu上使用的时间超时,此时被打入休眠状态,随着程序的调用会被唤醒 D(TASK_UNINTERRUPTIBLE) 不可唤醒状态 T(T

Linux中的进程管理

什么是进程,顾名思义嘛!就是正在进行的程序,在Linux中,只要开启服务就会在后台对应的有了进程.那么进程管理究竟对于我们的日常运维工作有什么用呢? 主要作用有三点: 首先,最重要的是查看服务器健康状态 第二,查看系统中运行的所有进程 第三,杀死进程 我们用到进程最重要的作不就是用就是用来查看服务器的健康状态,做运维的不就是为了保证服务器能够一直这么正常运行吗? ① top命令 -->查看服务器健康状态 终端直接输入top,如图: 这里面最重要的就是前面的那5行,其中几个比较重要的参数如下: l