入职必会-开发环境搭建40-Linux常用操作-Linux进程管理

简介: 进程是正在执行的程序或命令。每个进程独立的,都有需要占用一定的系统资源。Linux系统中启动进程有两种方式:1.Linux操作系统启动的时自动启动的进程。2.用户在终端输入命令启动的进程。

进程管理

进程介绍

进程是正在执行的程序或命令。每个进程独立的,都有需要占用一定的系统资源。Linux系统中启动进程有两种方式:1.Linux操作系统启动的时自动启动的进程。2.用户在终端输入命令启动的进程。

ps 查看当前系统进程状态

命令说明:

ps命令的全称为`process status` 表示进程状态。

ps命令参数

作用

显示当前用户通过终端启动的进程

a

显示所有用户通过终端启动的进程

u

显示所有用户通过终端启动的进程的详细信息

x

显示所有用户的所有进程

-e

显示所有进程

-u

显示某个用户关联的所有进程

-f

显示进程完整信息

常用方法:

ps aux  查看进程的CPU占用率和内存占用率
ps -ef  查看进程的父进程ID可以使用

操作示例:

[root@cyxpa02 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 128096  6632 ?        Ss   14:36   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    14:36   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    14:36   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   14:36   0:00 [kworker/0:0H]

效果说明:

标题

说明

USER

进程所属的用户

PID

进程的ID

%CPU

进程占用CPU资源的百分比

%MEM

进程占用物理内存的百分比

VSZ

进程占用虚拟内存的大小,单位 KB

RSS

进程占用实际物理内存的大小,单位 KB

TTY

进程是在哪个终端中运行的,如果显示?,表示非终端启动,该进程是守护进程

STAT

进程状态。R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示

START

进程的启动时间

TIME

进程占用CPU运算的时间

COMMAND

产生此进程的命令名

操作示例:

[root@cyxpa02 ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 14:36 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 14:36 ?        00:00:00 [kthreadd]
root          3      2  0 14:36 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 14:36 ?        00:00:00 [kworker/0:0H]

效果说明:

标题

说明

UID

进程所属的用户ID

PID

进程的进程号

PPID

进程的父进程号

C

进程的CPU使用率百分比

STIME

进程的启动时间

TTY

进程是在哪个终端中运行的,如果显示?,表示非终端启动,该进程是守护进程

TIME

进程占用CPU运算的时间

CMD

启动进程所用的命令和参数

ps -ef | grep 查询进程的信息

可以通过:ps -ef | grep 查询信息:可以根据查询信息找到相应的进程和信息。

操作示例:

[root@cyxpa02 ~]# ps -ef | grep tail
root     114750   7441  0 16:02 pts/0    00:00:00 tail -f he.txt
root     114882 113463  0 16:02 pts/2    00:00:00 grep --color=auto tail

kill 终止进程

命令说明:

作用: 发送一个特定的信号给指定的进程,若没有指定信号,默认是15,用于终止程序
语法: kill [选项] pid
选项: 
  -s    指定发送的信号,信号可以以信号名或数字的方式给定
  -p    指定 kill 只打印命名进程的进程标识 (pid) , 而不应发送给它信号
    -l    打印信号名的列表,这可以在 /usr/include/linux/signal.h 中找到
常见用法: 
  kill -l   打印信号名的列表
  kill -1 进程号   重新加载进程
  kill -9 进程号   杀死一个进程
    kill -15 进程号  正常停止一个进程

操作示例:

[root@cyxpa02 ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@cyxpa02 ~]#
[root@cyxpa02 ~]# ps -ef | grep tail
root      12192   7441  0 16:13 pts/0    00:00:00 tail -f he.txt
root      79541  12407  0 16:31 pts/4    00:00:00 grep --color=auto tail
[root@cyxpa02 ~]# kill -1 12192
[root@cyxpa02 ~]#
[root@cyxpa02 ~]# ps -ef | grep tail
root      81383   7441  0 16:32 pts/0    00:00:00 tail -f he.txt
root      82270  12407  0 16:32 pts/4    00:00:00 grep --color=auto tail
[root@cyxpa02 ~]# kill -9 81383
[root@cyxpa02 ~]#
[root@cyxpa02 ~]# ps -ef | grep tail
root      83202   7441  0 16:32 pts/0    00:00:00 tail -f he.txt
root      83444  12407  0 16:32 pts/4    00:00:00 grep --color=auto tail
[root@cyxpa02 ~]# kill -9 83202
[root@cyxpa02 ~]#

pstree 查看进程树

最小化安装的CentOS 7系统默认没有pstree命令。直接敲命令运行后会显示-bash: pstree: 未找到命令,需要单独安装pstree命令。输入下面的命令安装pstree

yum -y install psmisc

命令说明:

作用: 
语法: pstree [选项]
选项: 
  -p    显示进程的ID
    -u    显示进程的所属的用户
常见用法: 
  pstree -p 树形结构显示进程的ID
  pstree -u 树形结构显示进程的所属的用户

操作示例:

[root@cyxpa02 ~]# pstree -p
systemd(1)─┬─NetworkManager(6431)─┬─dhclient(6729)
           │                      ├─{NetworkManager}(6438)
           │                      └─{NetworkManager}(6442)
           ├─VGAuthService(6306)
           ├─abrt-watch-log(6307)
     省略一部分
           ├─lvmetad(3201)
           ├─systemd-journal(3180)
           ├─systemd-logind(6310)
           ├─systemd-udevd(3214)
           ├─tuned(6923)─┬─{tuned}(7318)
           │             ├─{tuned}(7319)
           │             ├─{tuned}(7320)
           │             └─{tuned}(7333)
           └─vmtoolsd(6320)───{vmtoolsd}(6394)
[root@cyxpa02 ~]# pstree -u
systemd─┬─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
        ├─VGAuthService
  省略一部分
        ├─sshd─┬─sshd─┬─bash───tail
        │      │      ├─bash───top
        │      │      └─bash───sleep
        │      ├─sshd─┬─bash───pstree
        │      │      ├─bash───top
        │      │      ├─bash───sleep
        │      │      └─sftp-server
        │      └─sshd─┬─bash───sleep
        │             ├─bash
        │             ├─bash───top
        │             └─sftp-server
[root@cyxpa02 ~]#

top 显示Linux进程状态

命令说明:

作用: 显示Linux进程状态
语法: top [选项]
选项: 
  -d    间隔秒数
  -i    忽略空闲进程和僵尸进程
  -p    监控指定的进程
              
常见用法: 
  top -d 2  间隔2秒数显示一次进程状态
  top -i    忽略空闲进程和僵尸进程
  top -p 1222 监控1222进程状态

top命令默认是3秒后刷新显示,用户可以输入回车空格手动刷新。

执行top命令后进入top基本视图,在top基本视图可以使用命令操作,命令如下:

top基本视图命令

说明

s

修改显示间隔时间

l

切换系统运行时间和平均负载信息

t

切换CPU状态信息

m

切换物理内存使用信息

f

设置进程的状态的显示信息,上下键

移动,空格键

选中或取消,q

退出选择

N

以PID的大小的顺序排列

P

以CPU占用率大小的顺序排列

M

以内存占用率大小的顺序排列

n

设置进程的显示数量

1

显示监控每个逻辑CPU的信息

h

显示帮助

操作示例:

[root@cyxpa02 ~]# top -d 0.5
top - 17:10:00 up  2:33,  6 users,  load average: 0.18, 0.31, 0.32
Tasks: 152 total,   1 running, 151 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  3.5 sy,  0.0 ni, 95.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863252 total,  1190420 free,   178444 used,   494388 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1481796 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                
 12373 root      20   0  161260   6096   4344 S   2.0  0.3   0:45.19 sshd                                   
 92071 root      20   0  162012   2328   1616 R   2.0  0.1   0:00.13 top                                     
     1 root      20   0  128096   6632   4140 S   0.0  0.4   0:03.27 systemd  
     省略其他信息
[root@cyxpa02 ~]# 
[root@cyxpa02 ~]# 
[root@cyxpa02 ~]# top -i
top - 17:11:39 up  2:35,  6 users,  load average: 0.47, 0.37, 0.34
Tasks: 152 total,   1 running, 151 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.4 us,  5.1 sy,  0.0 ni, 92.4 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  1863252 total,  1188848 free,   179092 used,   495312 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1481352 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                 
  7437 root      20   0  161260   6080   4344 S   1.3  0.3   2:05.26 sshd 
[root@cyxpa02 ~]# 
[root@cyxpa02 ~]# 
[root@cyxpa02 ~]# top -p 26520 -d 0.5
top - 17:12:43 up  2:36,  6 users,  load average: 0.35, 0.36, 0.33
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.5 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863252 total,  1188492 free,   178332 used,   496428 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1481680 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                 
 26520 root      20   0  107992    616    524 S   0.0  0.0   0:00.00 tail

top命令结果说明

第一行top - 17:11:39 up 2:35, 6 users, load average: 0.47, 0.37, 0.34是系统运行时间和平均负载。

标题

说明

17:11:39

当前系统时间

up  2:35

系统运行时间为2小时35分

6 users

当前系统登录了6个用户

load average: 0.47, 0.37, 0.34

系统最近5、10、15分钟内的平均负载。小于1说明负载较小。大于1说明系统已经超出负荷

第二行Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie是进程信息。

标题

说明

Tasks:   1 total

系统的总进程数量

0 running

正在运行的进程数量

1 sleeping

睡眠的进程数量

0 stopped

停止的进程数量

0 zombie

僵尸进程数量

第三行%Cpu(s): 0.0 us, 0.5 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st是CPU状态。

标题

说明

%Cpu(s):  0.0 us

运行用户进程的CPU时间

0.5 sy

运行内核进程的CPU时间

0.0 ni

运行已调整优先级的用户进程的CPU时间

99.5 id

空闲CPU的百分比

0.0 wa

用于等待IO完成的CPU时间

0.0 hi

处理硬件中断的CPU时间

0.0 si

处理软件中断的CPU时间

0.0 st

这个虚拟机被hypervisor偷去的CPU时间

第四行KiB Mem : 1863252 total, 1188492 free, 178332 used, 496428 buff/cache是物理内存使用情况。

标题

说明

Mem :  1863252 total

物理内存总量

1188492 free

空闲的内存总量

178332 used

使用中的内存总量

496428 buff/cache

缓存的内存量

第五行KiB Swap: 2097148 total, 2097148 free, 0 used. 1481680 avail Mem是虚拟内存使用情况。

标题

说明

Swap:  2097148 total

交换区总量

2097148 free

使用的交换区总量

0 used

空闲的交换区总量

1481680 avail Mem

缓冲的交换区总量

第六行PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND是进程的状态。

标题

说明

PID

进程ID

USER

进程所属的用户

PR

进程的调度优先级

NI

进程的优先级,值越小优先级越高,负值表示高优先级,正值表示低优先级

VIRT

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

RES

驻留内存大小

SHR

共享内存大小

S

进程的状态,D:不可中断的睡眠态,R:运行态,S:睡眠态,T:被跟踪或已停止,Z:僵尸态

%CPU

进程使用CPU时间百分比

%MEM

进程使用物理内存百分比

TIME+

进程从启动到当前使用的CPU总时间

COMMAND

运行进程所使用的命令或进程名称

查看网络进程

netstat

命令说明:

作用: 显示网络连接,路由表,接口状态
语法: netstat [选项]
选项: 
  -n, -number   显示数字形式地址主机、端口
  -t, tcp       显示TCP协议进程
  -l, --listening   只显示正在侦听的套接字
  -p, --program   显示所属进程的PID和名称
              
常见用法: 
  netstat -tnpl

操作示例:

相关文章
|
11天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
34 1
|
2月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
44 0
|
7天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
14天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
1月前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
131 4
linux进程管理万字详解!!!
|
20天前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
70 8
|
27天前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
55 1
|
27天前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
|
1月前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
24 2