进程管理工具的使用

Linux进程管理工具: pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, job,

pstree: 显示进程树

-p: 显示各进程的PID

ps: 显示进程状态的命令

Linux各进程的相关信息在/proc目录有一个以其PID命令的目录下的众多文件中;

支持两种使用风格:SysV, BSD

进程分类(根据进程是否通过终端启动):

与终端相关的进程: a

与终端无关的进程: x

常用组合1:aux

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

VSZ: Virutal memory SiZe

RSS:常驻内存集

STAT:进程状态

R:running

S:可中断睡眠

D: 不可中断睡眠

T:停止

Z:zombie

s: session leader

+: 前台进程,frontground

l: 多线程进程

N: 低优先级进程

<: 高优先级进程

COMMAND:

[]: 内核线程

常用组合2:-ef

-e: 显示所有进程

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

常用组合3:-eFH

-F: 显示额外信息

-H:显示进程的层次结构

自定义要显示的信息:axo FIELD

ps axo pid,command,psr,pri,ni

psr: 进程所运行在的CPU;

pri: 优先级, priority

ni: nice值

pgrep:

-U UID:仅显示由指定运行的进程PID

-t term: 仅显示指定的终端设备的进程PID

-l: 显示进程PID的同时显示进程名

用法:pgrep [OPTIONS] [PATTERN]

PATTERN: 支持正则表达元字符书写模式实现进程过滤;

pidof: 根据进程名获取其PID;

pidof PROGRAM

top:

P: CPU百分比

M:Memory占用量

T:CPU累积时间占用量

l: top行信息是否显示;

load avg:

CPU上等待运行的进程队列的队列长度;

过去1分钟、5分钟、15分钟的平均长度;

t:是否显示进程及CPU相关的信息

1:是否单独显示每颗CPU的使用率

us: user space

sy: system

ni: nice

id: idle

wa: waiting io

hi: hardware interrupt

si: software interrupt

st: stolen

m: 是否显示内存及swap相关的信息

q: 退出top

s: 修改刷新时间间隔;

k: 杀死指定进程

常用选项:

-d #: 指定刷新时间间隔;

-b: 以批次的显示;

-n #: 显示的批次;

htop:

选项:

-d #: 刷新时间间隔

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

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

交互式命令:

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

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

l: 跟踪选定进程打开的文件

t: 显示进程树

a: 设定cpu亲缘性(将选定的进程绑定在某CPU上)

vmstat:

procs:

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

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

memory:

swpd: 虚拟内存使用的总量;

free: 空闲的物理内存总量;

buffer:用于buffer的内存总量;

cache: 用于cache的内存总量;

swap:

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

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

io:

bi: 从块设备读入数据到系统的速率

bo: 保存数据至块设备的速率

system:

in: interrupts,中断速率

cs: context switch, 上下文切换速率

选项:

-s: 显示内存统计数据

回顾:进程管理基础概念, 进程状态查看工具

进程管理的基础概念:进程调度、进程优先级;

资源分配基本单位:CPU、内存、IO

CPU:timeslice

内存:虚拟内存、分布机制、MMU

IO:复用;

进程状态查看:/proc/#

pstree, ps, pgrep, pidof

top, htop, vmstat

Linux进程状态查看及管理(2)

pmap, glances, dstat, kill, job, bg, fg, nice, renice

pmap:查看指定进程内存映射关系

# pmap [OPTIONS] PID

-x: 显示扩展信息

# cat /proc/PID/maps

glances:

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

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

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

-f /path/to/somewhere: 设置输出文件的位置及其格式;

-o {HTML|CSV}

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 指定刷新时间间隔

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

交互式命令:有许多交互式命令来定义glances的显示信息,以及排序方式等;

h: 显示帮助

C/S模式下运行glances命令:

服务模式:

glances -s -B IPADDR

IPADDR:自己监听的本机地址

客户端模式:

glances -c IPADDR

IPADDR: 远程服务器监听的地址

dstat: 支持插件

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

-c

-d

-g, --page

-i

-l

-m

-p

-r, --io

-s, --swap

-t, --time

-y, --sys

--aio: 显示异步io统计数据

--ipc: ipc相关的信息

--raw: raw socket

--tcp: tcp socket

--udp: udp socket

--socket: raw, tcp, udp

--unix: unix sock

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

--top-bio:显示最占用block IO的进程

--top-mem: 显示最耗费内存的进程

--top-io:最占用IO的进程

IPC: 进程间通信

message queue, semerphore, shared memory, signal

signal:传递给进程的微小信息

显示可用信号:

kill -l

man 7 signal

向进程发信号:

kill [-SIGNAL] PID

SIGNAL:

(1) 信号的完整名称,例如SIGHUP、SIGINT、SIGKILL、SIGTERM、SIGCONT、SIGSTOP

(2) 信号简称:HUP、KILL

(3) 信号数据标识:1,2, ...

SIGHUP:1, 让进程重读配置文件中的信息,而无须重启进程;

SIGINT:2, interrupt,打断正在运行中进程;相当于Ctrl+c

SIGKILL: 9, 强行中止正在运行的进程

SIGTERM:15, 优雅关闭正在运行的进程

SIGSTOP:19, 暂停进程

SIGCONT: 18,继续暂停进程

killall [-SIGNAL] COMMAND

Linux作业控制:job

前台作业: 通过终端启动,并且在停止之前会一直占据终端;

后台作业:作业启动之后在后台运行;不通过启动,或在终端启动后直接转入后台运行;

如何让作业运行于后台?

1、运行中的作业:

Ctrl+z

注意:送往后台后,作业处于stopped状态;

2、尚未启动的作业:

COMMAND &

此类作业依然属于与终端相关的作业,因此,在终端结束时,其也会被终止;可以用下而的命令剥离其与终端的关系:

# nohup COMMAND &

查看作业:jobs

# jobs

作业控制命令:

# fg [[%]JOB_NUM]:把指定的作业调回前台

# bg [[%]JOB_NUM]:控制指定的作业于后台继续运行

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

进程优先级调整:nice, renice

静态优先级:

100-139

nice: -20, 19

(1) 以指定的nice值启动一个进程:

nice -n # COMMAND

(2) 调整运行中的进程的nice值:

renice -n # PID

注意:普通用户仅有权限调大nice值;

时间: 2024-10-13 23:28:46

进程管理工具的使用的相关文章

Linux进程管理工具 Supervisord 的安装 及 入门教程

Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor 主要就两个命令: supervisord : supervisor的服务器端部分,启动 supervisor 就是运行这个命令 supervisorctl:启动 supervisor 的命令行窗口. 安装(CentOS): 方式一: yum -y install python-

supervisor——进程管理工具

Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的控制,还可以同时启动.关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动. 1.安装 Supervisor 可以运行在 Linux.Mac OS X 上.如前所述,supervisor 是 Python 编

常用进程管理工具

进程管理工具 进程管理工具top/htop/glances/dstat/sar top 是一个实时显示当前系统运行信息的一个工具 常用选项 -z: 高亮显示 -r :选定pid,修改nice值(-20至19) -b :定位到正在运行(running状态)的进程 -k :相当kill shift+<或者> :向右左翻页查看不同的进程 -l: 显示或隐藏第一行的登入或者负载信息 -t :task/cpustats 以不同类型显示cpu和进程统计信息,或者将其隐藏 -m :以不同类型显示内存以及sw

进程管理工具 htop/glances/dstat的使用

htop:interactive process viewer(交互式进程查看器) htop:是一款比top功能更强大的进程管理工具,默认系统并未安装,需用户自行选择安装,此处yum仓库具体配置可参见前期博文yum的用法,配好后直接执行如下安装命令: # yum install htop -y htop出现如下界面: 我们可以看到:左上显示CPU.内存.Swap使用情况,右边显示任务.负载.开机时间,下面就是进程状况, 底部功能,F1:帮助 F2:设定 F3:搜索进程 F4:增量进程 F5:以树

pstree,ps,top,htop,vmastp,pmap,glances,dstat进程管理工具介绍

htop,glances,dstat进程管理工具介绍 1.htop 工具 htop常用交互命令 M:以memory排序 P:以cpu占用比排序 T:以cpu占用时长排序 u:过滤仅显示选定用户的进程: s:跟踪选定的进程所发起的系统调用: l:显示指定进程打开的文件 t:显示进程树格式 a:将选定的进程绑定在指定的CPU上 2.glances: glances[-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P pas

Supervisor 进程管理工具

Supervisor  进程管理工具时刻检测进程存活状态:可用来启动.重启.关闭进程: Supervisord(supervisor是一个C/S模型的程序,这是server端,对应的有client端:supervisorctl)和应用程序(即我们要管理的程序). 一.下载: https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3

Linux进程管理工具——supervisor

介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-3.1.3.tar.gz tar -zxvf supervisor-3.1.3.tar.gz cd supervisor-3.1.3 sudo python setup.py install 生成默认配置文件 echo_supervisord_conf > /etc/supervisord.conf 修改默认配置文件 如需访问wenb界面,修改inet_http_server配置

pm2进程管理工具使用总结

对于后台进程的管理,常用的工具是crontab,可用于两种场景:定时任务和常驻脚本.关于常驻脚本,今天介绍一款更好用的工具:pm2,基于nodejs开发的进程管理器,适用于后台常驻脚本管理,同时对node网络应用有自建负载均衡功能.官方的说法,pm2 是一个带有负载均衡功能的Node应用的进程管理器,个人认为,并不准确,因为pm2支持多种语言,只是对于除node之外的其他进程无负载均衡的能力. 一,pm2特点: 说一些pm2有哪些优点好处呢? 支持进程行为配置 ,即可以通过配置,实现pm2管理应

Linux下取代top的进程管理工具 htop

一.htop 简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (for console or X terminals) and requires ncurses. Comparison between htop and top In 'htop' you can scroll the list vertically and horizontally to see all

GO语言的进程管理工具-实践

GO 编写的进程管理工具 Gosuv Gosuv是一个进程管理工具,使用Go语言编写.受python-supervisor启发,学习了很多其中的功能和用法. 一.Gosuv的特点: Web控制台部分做了重点加强,因为使用频率太高了,在网页上现在可以直接添加先的应用,网页查看日志的部分也做了优化,查看起来没有这么费劲了.使用了websocket连接后端,状态一有变化,前台就能立刻看到变化. reload命令不在是重启的命令,而是重新读取配置文件,并应用已经更改的那部分. 日志部分对于带有ansi