四大命令助你轻松管理Linux进程

在Linux操作系统中,进程应该是重中之重。很多攻击的发动、黑客的入侵都是通过进程来实现的,以至于很多软件的BUG、系统的故障、硬件的检测等等,我们都可以通过进程的管理来判断。因为,进程管理对Linux运维工程师来说,至关重要。

1. 进程的相关概念


1.1 进程是什么?    

进程是运行中的程序的一个副本;存在生命周期,创建开始运行,运行结束退出

通俗来讲,进程就是运行中的程序


1.2 进程创建

进程都是由其父进程创建,进程间存在着父子关系

这里以CentOS 6为例,其父进程为 init,我们可以通过pstree命令查看

[[email protected] ~]# pstree
init─┬─abrtd
      ├─acpid
      ├─atd
      ├─auditd───{auditd}
      ├─console-kit-dae───63*[{console-kit-da}]
      ├─crond
      ├─dbus-daemon───{dbus-daemon}
      ├─hald─┬─hald-runner─┬─hald-addon-acpi
      │      │             └─hald-addon-inpu
      │      └─{hald}
      ├─httpd───8*[httpd]
      ├─login───bash───htop
      ├─master─┬─pickup
      │        └─qmgr
      ├─5*[mingetty]
      ├─rsyslogd───3*[{rsyslogd}]
      ├─sshd─┬─sshd───bash───htop
      │      └─sshd───bash───pstree
      ├─udevd───2*[udevd]
      └─xinetd

启动进程的方式:

系统启动过程中自动启动:与终端无关的进程;

用户通过终端启动:与终端相关的进程;

1.3 进程优先级

0-139:

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

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

可以通过修改一个进程的Nice值来调整进程的静态优先级,仅管理员可以调低静态优先级

1.4 进程类型

进程类型:

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

前台进程:跟终端相关,通过终端启动的进程

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

1.5 进程状态

运行态:running

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

停止态:stopped

僵死态:zombie


2. ps命令

ps 用来显示当前系统进程状态

用法:ps [OPTION]

[OPTION] 有三种风格:

UNIX风格:带"-" 例: ps -ef

BSD风格 :不带"-" 例: ps aux

GNU风格 :长格式 例: ps --user root

2.1 BSD风格的选项

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

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

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

常用组合之一:aux

[[email protected] ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  17128  1316 ?        Ss   Mar22   0:03 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Mar22   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Mar22   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    Mar22   0:03 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    Mar22   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    Mar22   0:00 [watchdog/0]
root          7  0.1  0.0      0     0 ?        S    Mar22   2:26 [events/0]
root          8  0.0  0.0      0     0 ?        S    Mar22   0:00 [events/0]
root          9  0.0  0.0      0     0 ?        S

其中首部各字段的含义:

USER :启动进程的用户

PID: 进程号

%CPU :累积CPU使用时间百分比

%MEM : 内存占用百分比

VSZ:虚拟内存集;占用的虚拟内存大小

RSS:Resident Size,常驻内存集;不能放在交换内存上

TTY:与其相关的终端

COMMAND: 由那个命令启动此进程

带[]的进程表示内核线程

STAT: 状态

R:running  运行态

S:interruptable sleeping 可中断睡眠态

D:uninterruptable sleeping  不可中断睡眠态

T:Stopped  停止态

Z:zombie   僵死态

+:前台进程   运行在终端上

l:多线程进程

N:低优先级进程

<:高优先级进程

s:session leader  会话引领者

2.2 UNIX风格的选项

-e:显示所有进程

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

-F:显示更完整格式的进程信息;

-H:以层级结构显示进程的相关信息;

-o: 自定义要显示的字段列表

常用组合之二:-ef

常用组合之三:-eFH

常用组合之四:-eo, axo

[[email protected] ~]# ps -eFH
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   0 Mar22 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 Mar22 ?        00:00:00   [migration/0]
root          4      2  0     0     0   0 Mar22 ?        00:00:03   [ksoftirqd/0]
root          5      2  0     0     0   0 Mar22 ?        00:00:00   [stopper/0]
root          6      2  0     0     0   0 Mar22 ?        00:00:00   [watchdog/0]
root          7      2  0     0     0   0 Mar22 ?        00:02:27   [events/0]
root          8      2  0     0     0   0 Mar22 ?        00:00:00   [events/0]
root          9      2  0     0     0   0 Mar22 ?

与 ps aux类似,其中不一样的首部字段信息:

PPID:父进程的进程号

STIME:启动时间

TIME:累计运行时间

C: cpu utilization  CPU的占用百分比

PSR:运行于哪颗CPU之上

CMD: 启动此进程的命令

SZ=VSZ 虚拟内存集;占用的虚拟内存大小

3. top命令

top  动态显示Linux系统进程信息

3.1 排序方式

    P:以占据CPU百分比排序;默认为P

M:以占据内存百分比排序;

T:累积占用CPU时间排序;

3.2 隐藏/关闭首部信息

l: uptime信息  也可以在命令行使用uptime命令显示

t: tasks及cpu信息

m: 内存信息

3.3 首部字段的含义

[[email protected] ~]# top
top - 20:15:10 up 1 day, 11 min,  3 users,  load average: 0.00, 0.01, 0.00
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  1.0%sy,  0.0%ni, 90.0%id,  8.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004768k total,   528624k used,   476144k free,   128244k buffers
Swap:  2097148k total,        0k used,  2097148k free,   219320k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                               
  6565 root      20   0  109m 1872 1240 S  0.7  0.2   8:31.44 htop                                   
 17919 root      20   0  110m 2024 1236 S  0.7  0.2   1:20.08 htop                                   
     1 root      20   0 17128 1316 1068 S  0.0  0.1   0:03.08 init                                   
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                               
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                            
     4 root      20   0     0    0    0 S  0.0  0.0   0:03.37 ksoftirqd/0                            
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                              
     6 root      RT   0     0    0    0 S  0.0  0.0   0:00.20 watchdog/0

top:

load average : 平均负载

Tasks:

# total 运行有多少个进程

%Cpu:

us 用户空间进程占用百分比

sy 内核空间进程占用百分比

ni nice调整额外占用的百分比

id 空闲百分比

wa 等待io完成时间百分比

hi 处理硬件中断所占用的百分比

si 处理软件终端所占用的是百分比

st 被虚拟化程序偷走的时间百分比

KiB Mem:

total 总空间

free 空闲空间

used 已使用空间间

buff/cache 用于缓存和缓冲的空间

avail Mem :可用内存空间

3.4 命令选项

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

-b:以批次方式显示;

-n #:显示多少批次;

例:

~]# top -d 5 -b -n 2

3.5 htop命令

    top的升级版,可支持鼠标操作

top的内建命令和选项 htop都可兼容使用

额外的常用选项和子命令

选项:

-d #:指定延迟时间间隔;

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

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

子命令:

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

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

t:以层级关系显示各进程状态;

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

注:htop不是系统自带的,需要自己额外安装


4. dstat命令

dstat 多用途工具生成系统资源统计数据(非常强大的一款工具)

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

常用选项:

-c, --cpu:显示cpu相关信息;

-C #,#,...,total 看那颗CPU信息

-d, --disk:显示磁盘的相关信息

-D sda,sdb,...,tobal   某一块磁盘的相关信息

-g:显示page相关的速率数据;

-m:Memory的相关统计数据

-i: 显示中断的信息

-l: 显示平均负载

-n:Interface的相关统计数据; 网络

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

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

-s:显示swapped的相关统计数据; 交换内存

-y: 显示system

-t: 统计当前时间

--tcp  TCP链接相关数据

--udp

--raw

--socket

--ipc 进程间通信的相关数据

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

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

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

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

5. kill命令


5.1 kill命令

kill 用于向进程发送信号,以实现对进程的管理

每个信号的标识方法有三种:

1) 信号的数字标识;

2) 信号的完整名称;

3) 信号的简写名称;

用法: kill  [-s signal|-SIGNAL]  pid...

显示当前系统可用信号:

kill -l [signal]

向进程发信号:

kill  [-s signal|-SIGNAL]  pid...

常用信号:

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

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

9)SIGKILL:杀死运行中的进程;

15)SIGTERM:终止运行中的进程;

18)SIGCONT:继续

19)SIGSTOP:停止   相当于Ctrl+z

例:杀掉htop进程

[[email protected] ~]# pgrep htop
18099
[[email protected] ~]# kill -9 18099

5.2 killall命令

killall 根据进程名来杀掉进程

用法:killall  [-SIGNAL]  program

例:杀掉htop进程

[[email protected] ~]# killall htop
时间: 2024-08-27 07:16:12

四大命令助你轻松管理Linux进程的相关文章

bat助你轻松管理windows 服务器游戏进程

批量关闭........ @echo off for %%a in ( SearchFilterHost.exe ksvssvc.exe SearchIndexer.exe tenpaycert.exe SupServ.exe kxeserv.exe EmmaUpdateMgmt.exe kaqsvc.exe AEstSrv.exe 360rp.exe stacsv.exe nvvsvc.exe ksvsp2p.exe unsecapp.exe ) do taskkill /f /im %%a

Linux任务调度命令(轻松管理Linux)

Linux任务调度其实就是让系统在某个时间执行某些命令或者程序,这样可以让管理员更加轻松地管理自己的Linux,当我刚了解到这个方法时,我的内心充满了无尽的欣喜,感觉Linux实在是太强大了. 下面我就来具体的讲讲这个命令 一:任务调度分类 1.系统工作,有些重要的工作必须周而复始的执行,比如病毒扫描 2.个别用户工作,个别用户可能希望执行某些程序,比如定时打开音乐播放器 二:任务调度文件的位置 /etc/crontab 三:个人任务调度命令 crontab -e 接着输入任务调度文件,如* *

linux 进程管理工具

进程管理 狭义定义:进程是正在运行的程序的实例. 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 进程是操作系统中最基本.重要的概念.是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上. 一.进程的属性: 进程ID(PID):是唯一的数值,用来区分进程: 父进程和父进程的ID(PP

Linux进程管理四大工具ps \dstat\ top\ htop

Linux进程管理之“四大名捕” 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”.内功卓越的高手“铁手”.腿功惊人的“追命”和剑法一流的“冷血”本文四大名捕由linux命令所出演      无情:ps     出演      铁手:dstat  出演      追命:top    出演      冷血:htop   出演 二.进程相关基础知识 介绍四大名捕之前先介绍一下进程相关的基础知识,话不多说,看图. 三.

linux进程管理的常用命令

执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管理这些进程,用户应该能够: 查看所有运行中的进程 查看进程消耗资源 定位个别进程并且对其执行指定操作 改变进程的优先级 杀死指定进程 限制进程可用的系统资源等 Linux提供了许多命令来让用户来高效掌控上述的操作.接下来,一个一个的来讲解下. 1. ps

Linux进程管理命令浅析

在Linux上,一切皆文件.同样,系统的实时状态信息也通过文件的形式保存在文件系统上.在/proc/中,保存的就是内核中的状态信息,而在/proc/#中(#为PID)保存了进程的信息,我们可以通过调用工具来查看这些文件中保存的信息从而来管理系统的进程.本次,分析的命令有top.htop.dstat和ps共4个命令. 一.top命令的使用 查看系统进程的实时状态.其格式是 top [d|b|n] -d #:指定刷新时间间隔,默认为3秒 -b:以批次方式显示 -n #:显示多少批次 ~]# top

linux进程管理命令总结

linux进程管理的相关命令: 1.pstree  --以树状形式显示当前系统进程,和命令tree相似. 2.ps命令 命令格式:ps [options] 常用组合:aux: u:以用户为中心组织的进程状态信息显示 a:与终端相关的进程 x:与终端无关的进程 #ps aux USER : 用户名 PID : 进程号 %CPU :占用的cpu百分比 %MEM  :内存的使用率 VSZ :  virtual memory size ,虚拟内存集 RSS : resident size ,常驻内存集

12个Linux进程管理命令介绍

12个Linux进程管理命令介绍 当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.Linux提供了许多命令来让用户来高效掌控上述的操作. 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管

Linux 进程管理命令ps、top、kill、nice、fg、bg、vmstat、uptime

Linux 进程管理命令: ps process status 查看进行相关信息: system 风格:sysv  有-线引导 BSD风格:BSD ps a:显示所有跟终端有关的进程 u:显示更详细的字段 x:显示所有跟终端无关的进程 常用 ps ax 进程分类: 终端启动(相关)的进程:用户通过命令行启动的进程 跟终端无关的进程:系统启动就自己启动 进程状态: D: 表示不可中断的睡眠 R:表示就绪态 S:表示可中断的睡眠 T:停止 Z:僵死态 <:高优先级进程 N:低优先级进程 +:前台进程