linux进程管理

本文详细介绍了Linux操作系统中的进程管理,包括进程的状态、常用管理命令如ps、top、pstree、pgrep和kill等,以及如何通过nice调整进程优先级。此外,还阐述了服务管理,特别是systemctl在启动、停止、监控服务中的应用。
摘要由CSDN通过智能技术生成

进程管理

进程是一个二进制程序的执行过程,在Linux操作系统中,向命令行输入一条命令,按下回车,便会有一个进程被启动。
从计算机用户的角度看,一台计算机可同时运行多个进程,但实际上,一个单核的CPU同一时 刻只能处理一个进程,用户之所以会任务同时有多个进程在运行,是因为计算机系统采用了“多 道程序设计”技术。
所谓多道程序设计,是指计算机允许多个相互独立的程序同时进入内存,在内核的管理控制之下,相互之间 穿插运行 。多道程序设计必须有硬件基础作为保障。

 进程状态

通常进程的状态被划分为五种:初始态、就绪态、运行态、睡眠态和终止态。初始态和终止态一般不进行讨论,因为当初始化完成后,进程会立刻转化为就绪态;进程运行完毕会立刻转为终止 态。
1、就绪态
处于就绪态(Ready)的进程,所需的其他资源已分配到位,此时只等待cpu,当可以使用cpu 时,进程会立刻变为运行态。
2、运行态
进程处于运行态(Execting)时会占用cpu,处于此状态的进程的数目必定小于等于处理器的数 目,即每个cpu上至多能运行一个进程。
3、睡眠态处于睡眠态(
Sleeping)的进程会因某种原因而暂时不能占有cpu。睡眠态分为不可中断的睡眠和可中断的睡眠。

进程管理命令

Linux系统为每个进程分配了一个唯一确定的标识符——PID(Process Identifer,进程标识 符)。内核可根据PID来管理进程的相关信息。Linux系统中提供的进程管理命令大多都通过PID 来管理进程。常用的进程管理命令有ps、top、pstree、pgrep、nice、jobs、bg、fg、kill等。
ps是“Process Status”的缩写。在命令行输入“ps”后回车就能查看当前系统中正在运行的进
程。ps的命令格式如下:
ps [ 选项 ] [ 参数 ]
ps命令可以与一些选项搭配,实现更丰富的功能。它的选项有两种风格:SysV和BSD。SysV风
格的选项需要与“-”,一起使用,BSD风格的选项可以直接使用。

 BSD风格

选项说明
a显示当前终端机下的所有进程,包括其他
u以用户形式,显示系统中的进程
x忽视终端机,显示所有进程
e显示每个进程使用的环境变量
r只列出当前终端机中正在执行的进程

SysV风格  

选项说明
-a显示所有终端机中除阶段作业领导之外的进程
-e显示所有进程
-f除默认显示外,显示UID、PPID、C、STIME项
-o指定显示哪些字段,字段名可以使用长格式,也可使用“%字符”的短格式指定,多个字段名使用逗号分割
-l使用详细的格式显示进程信息,等同于BSD风格的选项
top

ps命令执行后,会显示执行命令那一刻系统中进程的相关信息,若想使信息动态地显示,可以用top命令。top的命令格式如下:
top [ 选项 ]
选项 :
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-b :使用批处理模式输出。一般和 "-n" 选项合用,用于把 top 命令重定向到文件中;
-n 次数:指定 top 命令执行的次数。一般和 "-" 选项合用;
-p 进程 PID :仅查看指定 ID 的进程; 8 -s :使 top 命令在安全模式中运行,避免在交互模式中出错误;
-u 用户名:只监听某个用户的进程;
执行top命令后可通过热键对显示的信息进行操作,常用的热键及其对应的功能如表所示。

热键说明
l控制是否显示平均负载和启动时间(第一行)
t控制是否显示进程统计信息和cpu状态信息(第2、3行)
m控制是否显示内存信息(第4、5行)
M根据常驻内存集RES大小为进程进行排序
P根据%CPU为进程排序
T根据TIME+为进程排序
r重置一个进程的优先级
i忽略闲置和僵死进程
k终止一个进程
高亮显示正在运行的进程的快捷键
按z选项在运行top命令将显示运行进程的颜色,这可能有助于您更容易识别正在运行的进程。
显示进程的绝对路径的快捷键
在运行top命令时按下c选项,将会显示正在运行的进程的绝对路径。
修改`top`的延迟或设置屏幕刷新间隔的快捷键
默认屏幕刷新间隔为3.0秒,同样可以在运行top命令中按d选项进行更改,如下图所示

 保存`top`命令结果的快捷键

 要将运行中的top命令的结果输出保存到文件/root/中。toprc使用以下命令。

top -n 1 -b>top-output.txt

获取`top`命令帮助的快捷键
按h选项获得顶部命令帮助。
在特定的重复之后退出`top`命令的快捷键
top输出保持刷新,直到你按下q。
top 命令下常用的快捷键
shift+e 切换内存显示模式(可重复按键切换)
z 切换是否彩色显示(可重复按键切换)
m 切换内存显示模式(可重复按键切换)
e 切换底部进程中单位的显示模式(可重复按键切换)
b 切换高亮选中(可重复按键切换)
W 把当前配置保存到文件中,下次启动 top 会使用当前的配置
h 进入帮助菜单 ( 进入菜单后,可按 ESC q 退出帮助菜单 )
q 退出 top 命令

pstree 

pstree命令以树状图的形式显示系统中的进程,可以直接观察到进程之间的派生关系。

安装pstree
yum -y install psmisc
pstree命令的格式如下:
pstree [ 选项 ]

 pstree命令中的常用选项如表所示。

选项说明
-a显示每个进程的完整命令
-c不使用精简标识法
-h列出树状图,特别标明当前正在执行的进程
-u显示用户名称
-n使用程序识别码排序
pgrep
pgrep命令根据进程名从进程队列中查找进程,查找成功后默认显示进程的pid。pgrep命令的格
式如下:

 pgrep [选项] [参数]

Linux系统中可能存在多个同名的进程,pgrep命令可以通过选项缩小搜索范围,其常用选项如
表所示。

选项说明
-o仅显示同名进程中pid最小的进程
-n仅显示同名进程中pid最大的进程
-p指定进程父进程的pid
-t置顶开启进程的终端
-u指定进程的有效用户id
nice

相对优先级nice  

可以有四十多种不同的nice值级别。(从-20到19) 

nice值越高:表示优先级越低,如+19表示该进程容易将cpu使用量让给其他进程。
nice值越低:表示优先级越高,如-20,该进程不倾向让出cpu。

nice命令用于设置Linux系统中进程的nice值,该命令的格式如下:  

nice [选项] [参数] 

 nice选项常用的选项为-n,n表示优先级,是一个整数。

# nice –n 5 bash
# nice –n 6 top

jobs

使用jobs命令可以查看Linux系统中的作业列表及作业状态,进程中的作业也有编号,编号从1开始。Linux系统中作业从用户角度进行编号,进程从系统管理员的角度进行编号。jobs命令的语 法格式如下
jobs [ 选项 ] [ 参数 ]

 当选项和参数缺省时,默认显示作业编号、作业状态和启动作业的命令

选项说明
-l显示进程号
-p仅显示作业对应的进程号
-n显示作业状态的变化
-r仅显示运行状态的任务

-s

仅显示停止状态的任务
bg和fg
Linux系统中可以使用bg命令和fg命令,使进程在前台和后台之间进行切换。
bg命令的作用是,将进程放入后台运行,使前台可以执行其它任务。其命令格式如下:
bg 参数

 fg命令的作用与bg相反,是将后台的进程调往前台。其命令格式如下:

fg 作业号

使用时,先用 jobs 查看作业,然后通过 bg/fg 带上 job 的编号即可切换  

kill
kill命令用来终止正在运行的进程,它的工作原理是发送某个信号到指定进程,以终止该进程。
kill的命令格式如下:
kill [ 选项 ] [ 参数 ]
kill命令的选项一般是“-信号编号”,参数一般是PID。除管理进程外,kill命令也可用于查看系统
最常用的信号为9号信号SIGKILL,该信号不能被忽略,可以无条件终止指定进程。除SIGKILL
外,Linux系统中常用的信号及其功能分别如下:
使用kill命令的“-l”选项可以打印系统中预设的所有信号,如图2-12为CentOS 7中的信号列
表。
SIGINT:中断进程,使用快捷键Ctrl+C可实现相同功能。
SIGQUIT:退出进程,使用快捷键Ctrl+\可实现相同功能。
SIGTERM:终止进程。
SIGCONT:使已停止的进程继续执行。
SIGSTOP:暂停进程,使用快捷键Ctrl+Z可实现相同功能 中的信号。
服务管理
Linux系统提供了特定的命令,以便管理各种服务,在CentOS7之前的版本中,用于管理服务的命令为service和chkconfig,CentOS7及其之后的版本统一使用systemctl命令管理服务。 systemctl命令实际上是service和chkconfig命令的组合,该命令的格式如下:
systemctl 功能 服务名称
systemctl命令功能的基础取值与含义如下:
enable:使指定服务开机自启;
disable:取消指定服务开机自启;
start:启动指定服务;
stop:停止指定服务;
status:检查指定服务运行情况,列出该服务的详细信息;
restart:重启指定服务;
reload:重新加载指定服务的配置文件

 Linux系统中常使用systemctl命令管理的服务如表所示。

服务名称说明
dovect邮件服务器中的POP3/IMAP服务的守护进程,主要用于收取邮件
httpdapache服务的守护进程
firewalldCentOS7及之后版本中防火墙服务的守护进程
mariadbmariadb数据库服务的守护进程
namedDNS(域名系统)服务的守护进程,用于解析域名
network网络服务的守护进程,用于管理网络
nfsNFS(网络文件系统)服务的守护进程,用于实现Linux系统间的文件分享
vsftpdvsftp服务的守护进程,用于实现文件传输(FTP服务)
xinetdCentOS7级以后版本的超级守护进程,用于管理多种轻量级Internet服务
postfix邮件服务中IMAP服务的守护进程,主要用于实现邮件发送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值