`
Luob.
  • 浏览: 1589830 次
  • 来自: 上海
社区版块
存档分类
最新评论

Linux 进程管理

阅读更多
目标内容
进程管理
进程管理工具
后台和前台进程
进程的优先级


1. Linux进程管理

程序、进程、线程概念

程序:一组指令的集合  例如:QQ
进程:程序的执行就是进程。也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己(make –j 4)。进程是资源分配的基本单位,也是调度运行的基本单位。
线程:线程被人们认为是轻量级的进程,它是进程中单独运行的程序。
换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,同时同一进程的线程共享该进程的代码和数据

程序和进程的区别
1、 程序是静态的,它只是一组指令的集合,不具有任何的运行意义。本身作为一次软件资源长期保存;而进程是程序执行的动态过程.它是动态概念,有一定的生命周期,它是动态产生和消亡的
2、 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程;一个程序可以由多个进程公用
3、进程还具有并发性和交往性,而程序却是封闭的。

进程和线程的区别
1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。
2、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。


进程的属性
进程ID(PID):是唯一的数值,用来区分进程
父进程的ID(PPID)
启动进程的用户ID(UID)和所归属的组(GID)
进程状态:状态分为运行R、休眠S、僵尸Z
进程执行的优先级
进程所连接的终端名
进程资源占用:比如占用资源大小(内存、CPU占用量)

2.进程管理工具
对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、工具

进程查看命令:ps
常用参数(选项)
 -a 显示所有用户的进程
 -u 显示用户名和启动时间
 -x 显示没有控制终端的进程
 -e 显示所有进程,包括没有控制终端的进程
 -l 长格式显示,详细信息显示
 -w      宽行显示,可以使用多个w进行加宽显示

[root@xuegod66 ~]# ps -aux|more
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

结果参数的解释:
UID 用户的id
USER 用户名
PID 程进
PPID 父进程的进程号
VSZ 进程的虚拟大小
RSS 驻留集的大小,也可以理解为内存中页的数量
TTY 进程启动的终端
STAT 进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)
NI 进程优先级
TIME 进程自从启动以后启用CPU的总时间
%CPU 占用CPU时间和总时间的百分比
%MEM 占用内存与系统内存总量的百分比
COMMAND/CMD 进程的命令名


其中状态参数说明:

< 高优先级
N 低优先级
L 有些页被锁进内存
S 包含子进程
+ 位于后台的进程组
l 多线程

查看所有用户执行的进程的详细信息
[root@xuegod72 ~]# ps -aux
[root@xuegod72 ~]# ps -le

查看指定进程信息
[root@xuegod66 ~]# ps -aux|grep ssh
[root@xuegod66 ~]# ps -el|grep ssh

 ps -aux 是用BSD的风格来显示进程。
 ps -ef 是用标准的格式显示进程。

top动态查看进程
[root@xuegod66 ~]# top
top - 23:58:00 up 7 min,  2 users,  load average: 0.00, 0.02, 0.00
Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004412k total,   625376k used,   379036k free,    11872k buffers
Swap:  4194296k total,        0k used,  4194296k free,    74712k cached

---以上5行 为系统的整体信息
---以下为 进程信息
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                      
     1 root      20   0 19356 1532 1232 S  0.0  0.2   0:00.83 init         

系统的信息解释
任务队列信息(第一行)
其内容如下:
23:58:00 当前时间
up 7 min 系统运行时间,格式为时:分
2 users, 当前登录用户数
load average: 0.00, 0.02, 0.00 系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

进程和CPU的信息( 第二、三行)
当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 481 total 进程总数
1 running 正在运行的进程数
480 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
0.0% us 系统用户进程使用CPU百分比。
0.0% sy 内核中的进程占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
100% id 空闲CPU百分比

内存信息(第四五行)
Mem: 2033552k total 物理内存总量

340392k used 使用的物理内存总量
1376636k free 空闲内存总量
316524k buff/cache 用作内核缓存的内存量。
和free –k 一个意思

Swap: 2017948k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
1518148 avail Mem 总的可利用内存是多少

进程信息
PID 进程id
USER 进程所有者的用户名
NI 进程优先级。 nice值。负值表示高优先级,正值表示低优先级
RES 实际使用内存大小。
S 进程状态。
            D=不可中断的睡眠状态
            R=运行
            S=睡眠
            T=跟踪/停止
            Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行

top快捷键:
 默认3s刷新一次
 空格 :立即刷新。
 q退出
 M:按内存排序
 P:按CPU排序
 h:任务优先级

pgrep管理工具
作用:查找服务进程号
语法格式 pgrep  [服务名称]
比如我们查看一下apahce服务的进程号
[root@xuegod66 ~]# pgrep httpd
[root@xuegod66 ~]# pgrep ssh

pstree工具使用
pstree命令以树状图显示进程间的关系(display a tree of processes)。
格式:pstree
以树状图显示进程,只显示进程的名字,且相同进程合并显示。
格式:pstree  -p
以树状图显示进程,还显示进程PID。
[root@xuegod72 ~]# pstree |more
[root@xuegod72 ~]# pstree -p |more

使用netstat工具
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态
命令参数:
 -a或–all 显示所有连接中的接口
 -c或–continuous 持续列出网络状态
 -C或–cache 显示路由器配置的快取信息
 -e或–extend 显示网络其他相关信息
 -F或–fib 显示FIB
 -g或–groups 显示多重广播功能群组组员名单
 -h或–help 在线帮助
 -i或–interfaces 显示网络界面信息表单
 -l或–listening 显示监控中的服务器的接口
 -M或–masquerade 显示伪装的网络连线
 -n或–numeric 直接使用IP地址,而不通过域名服务器
 -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称
 -o或–timers 显示计时器
 -p或–programs 显示正在使用接口的程序识别码和程序名称
 -r或–route 显示Routing Table
 -s或–statistice 显示网络工作信息统计表
 -t或–tcp 显示TCP传输协议的连接状况
 -u或–udp 显示UDP传输协议的连接状况
 -v或–verbose 显示指令执行过程
 -V或–version 显示版本信息
 -w或–raw 显示RAW传输协议的连线状况
 -x或–unix 此参数的效果和指定”-A unix”参数相同
 –ip或–inet 此参数的效果和指定”-A inet”参数相同

 查看所有的TCP端口
[root@xuegod72 ~]# netstat –anlpt
[root@xuegod72 ~]# netstat -antpu|grep 80

 查看某个服务的端口
[root@xuegod72 ~]# netstat -anlpt | grep sshd

 查看所有的UDP端口
[root@xuegod72 ~]# netstat -anlpu

Linux后台进程与前台进程
Linux后台进程与前台进程的区别
Linux后台进程:
也叫守护进程(Daemon),是运行在后台的一种特殊进程。
守护的意思就是不受终端控制;Linux的大多数服务器就是用守护进程实现的。
比如,Web服务器httpd等。
Linux前台进程:
用户使用的有控制终端的进程.


进程的前台与后台运行
跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z
& 用在一个命令的最后,可以把这个命令放到后台执行.
ctrl + z 将一个正在前台执行的命令放到后台,并且暂停.
jobs 查看当前有多少在后台运行的进程.
fg 将后台中的命令调至前台继续运行, 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) 
bg 将一个在后台暂停的命令,变成继续执行; 如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
实战恢复被挂起的进程


实战恢复被挂起的进程
例: vim a.txt   按下: ctrl+z 
[root@xuegod66 ~]# vim a.txt

[1]+  Stopped                 vim a.txt
[root@xuegod66 ~]# ps -aux|grep vim

那么怎么恢复呢?用bg还是fg
[root@xuegod66 ~]# jobs
[1]+  Stopped                 vim a.txt
[root@xuegod66 ~]#
fg是将后台挂起的进程恢复到前台运行
[root@xuegod66 ~]# bg
[1]+ vim a.txt &
[root@xuegod66 ~]# fg
[root@xuegod66 ~]# jobs


kill进程
控制(关闭)进程
kill用法
关闭进程:kill  [进程号]
通过信号的方式来控制进程
[root@xuegod72 ~]# kill -l

 关闭进程
两种形式都可以强行关闭进程。
kill -s 9 [进程号]  (强行关闭)
[root@xuegod66 ~]# ps -ef|grep vim
root       1716   1642  0 00:17 pts/0    00:00:00 grep vim
[root@xuegod66 ~]# kill -9 1716


kill和killall终止进程
查看 进程的pid
使用kill命令
语法:kill -9 pid
killall 通过程序的名称,直接杀死所有进程
[root@xuegod66 ~]# ps -ef|grep httpd
[root@xuegod66 ~]# killall httpd
[root@xuegod66 ~]# ps -ef|grep httpd

进程的优先级管理
进程的优先级的定义
比如:XXX吃饭
优先级取值范围为(-20,19),越小优先级越高, 默认优先级是0
命令1:nice
作用:指定程序的运行优先级
格式:nice -n command
命令2:renice
作用:改变程序的运行优先级
格式:renice -n pid
实战:
 指定一个文件的优先级
[root@xuegod72 ~]# nice -n 5 vim a.txt
输入内容,然后ctrl+z 挂起

 通过ps查看这个文件的PID号
[root@xuegod72 ~]# ps -aux|grep vim

 通过top命令查看优先级
[root@xuegod72 ~]# top -p 26154

 改变正在运行的进程的优先级
[root@xuegod72 ~]# renice -10 26154
分享到:
评论

相关推荐

    LINUX进程管理实验

    ### LINUX进程管理实验知识点解析 #### 一、进程与程序的区别 在进行LINUX进程管理实验之前,首先需要理解进程与程序之间的区别。程序是指令的集合,是静态的,而进程则是程序的一次动态执行过程,具有生命周期,...

    Linux 进程管理命令

    Linux 进程管理命令 Linux 进程管理命令是 Linux 操作系统中用于管理进程的命令,它们是 Linux 系统管理员的基本工具。这些命令可以用来查看、管理和控制进程,从而确保系统的稳定运行。 1. 程序和进程 在 Linux ...

    linux进程管理实验

    Linux 进程管理实验 本实验的目的是了解 Linux 进程管理的基本概念和相关系统调用,掌握父进程和子进程的内存映像,实现软中断通信和进程的管道通信。 一、基本概念 * 进程管理:是操作系统中负责管理进程的模块...

    linux进程管理分析

    linux进程管理分析

    四大命令助你玩转Linux进程管理

    四大命令助你玩转Linux进程管理 命令 Linux 进程管理

    Linux进程管理和网络管理.pdf

    Linux进程管理和网络管理是Linux系统运维中非常重要的两个方面,涉及到系统性能监控、服务维护、故障排查等多个环节,是系统管理员必备的技能之一。 一、Linux进程管理 1. 进程概念 进程是计算机中的程序关于某...

    Linux 进程管理PPT

    ### Linux 进程管理知识点详解 #### 进程组成 - **正文段**:这部分包含了进程需要执行的程序代码,具体地,它描述了进程所要实现的功能逻辑。 - **用户数据段**:用于存储正文段执行时所需的数据以及工作区,比如...

    linux 进程管理

    通过以上介绍,我们可以看到Linux进程管理涉及到的工具和命令非常实用,能够帮助用户有效地监控和控制进程,从而保证系统的高效稳定运行。对于Linux用户来说,熟练掌握这些工具和命令是十分必要的。

    Linux进程管理实验.pdf

    Linux进程管理实验中涉及的核心知识点包括Linux操作系统中进程的概念、进程控制块(PCB)的结构、进程状态转换、fork()系统调用的工作原理以及相关内核函数。下面将详细解释这些概念和技术点。 Linux中的进程是一个...

    Linux服务器配置与管理:linux进程管理.pptx

    在Linux服务器管理中,进程管理是一项基础且至关重要的任务,它涉及到系统性能监控、资源调度以及问题排查。本文将深入探讨Linux的进程管理方法,特别是如何使用`ps`和`top`这两个命令来查看和监视进程状态。 首先...

    L5 Linux进程管理1

    L5 Linux进程管理1 Linux进程管理是 Linux 操作系统中一个非常重要的概念,它控制着系统中的进程资源分配和调度。本章节将从 Linux 进程概念、进程控制块 task_struct 结构、Linux 进程的创建、Linux 进程调度等...

    操作系统(Linux进程管理

    操作系统中的Linux进程管理是计算机科学中的核心概念,尤其在服务器和嵌入式系统中尤为重要。在Linux环境下,进程是操作系统中资源分配和任务调度的基本单位,它代表了正在执行的程序的一个实例。本节主要围绕进程的...

    linux-process-management.zip_linux进程管理

    本文将深入剖析Linux进程管理,探讨其生命周期,以及与用户进程创建、内存管理、调度和销毁相关的内核机制。 首先,Linux进程的生命周期包括创建、执行、等待、停止、继续执行和终止几个阶段。创建进程通常通过`...

    Linux 进程管理 实验说明

    Linux 进程管理实验说明 Linux 进程管理是 Linux 操作系统中的一项重要功能,它负责管理系统中的进程资源,包括进程创建、进程调度、进程同步、进程通信等。下面是 Linux 进程管理实验说明中的一些重要知识点: 一...

    linux linux进程管理 常用命令

    Linux 进程管理常用命令 Linux 进程管理是 Linux 系统管理员和普通用户的一项重要任务,主要是监视系统进程的运行状况,并适时终止一些失控的进程。本文将为您介绍 Linux 进程管理的常用命令和应用场景。 1. ps ...

    Linux进程管理

    Linux进程管理是操作系统中一个非常核心的组成部分,它负责对系统中的进程进行调度、监视和控制。进程是操作系统进行资源分配和调度的基本单位,是程序执行时的一个实例。每个进程都有自己的生命周期,包括创建、...

    处理机管理之Linux进程管理

    本文将详细探讨Linux进程管理的相关知识点。 首先,进程是操作系统中运行程序的实例,是系统资源分配的基本单位。在Linux中,每一个进程都有其特定的组成结构。进程由正文段、用户数据段和系统数据段三部分构成。...

    UNIX Linux实验教程 3实验三Linux进程管理与控制.doc

    UNIX/Linux 进程管理与控制 UNIX/Linux 操作系统中,进程是操作系统的主要服务对象,操作系统的主要职责就是将各类系统资源有效、合理地分配给系统中进程使用,实现各种应用功能。进程的主要特性有动态性、并发性...

    东南大学操作系统课程设计——Linux进程管理及其扩展

    此资源包含完整实验报告(加上你的学号姓名即可提交)

Global site tag (gtag.js) - Google Analytics