关于linux:Linux系统管理之进程管理

42次阅读

共计 2102 个字符,预计需要花费 6 分钟才能阅读完成。

在正式的工作环境中,作为 Linux 系统管理员,监视系统过程的运行状况应该是日常的工作之一。那么,到底什么是过程呢?

什么是过程

过程是正在执行的一个程序或命令,每个过程都是一个运行的实体,都有本人的地址空间,并占用肯定的系统资源,它由程序指令,和从文件、其它程序中读取的数据或零碎用户的输出组成。操作系统会给过程调配一个 ID,称为 PID(过程 ID)。

过程的类型

  • 前台过程:这些过程由终端会话初始化和管制。换句话说,须要有一个连贯到零碎中的用户来启动这样的过程;它们不是作为零碎性能 / 服务的一部分主动启动
  • 后盾过程:这些过程没有连贯到终端;它们不须要任何用户输出
  • 守护过程:这是后盾过程的非凡类型,它们在系统启动时启动,并作为服务始终运行

在操作系统中,所有能够执行的程序与命令都会产生过程。只是有些程序和命令非常简单,如 ls 命令等,它们在执行完后就会完结,相应的过程也就会终结,所以咱们很难捕捉到这些过程。然而还有一些程和命令,比方 httpd 过程,启动之后就会始终驻留在零碎当中,咱们把这样的过程称作常驻 内存过程

某些过程会产生一些新的过程,咱们把这些过程称作子过程,而把这个过程自身称作父过程。比方,咱们必须失常登录到 Shell 环境中能力执行系统命令,而 Linux 的规范 Shell 是 bash。咱们在 bash 当中执行了 ls 命令,那么 bash 就是父过程,而 ls 命令是在 bash 过程中产生的过程,所以 ls 过程是 bash 过程的子过程。也就是说,子过程是依赖父过程而产生的,如果父过程不存在,那么子过程也不存在了。

查看零碎中所有的过程: ps aux

ps 命令用于查看零碎中的过程状态,格局为“ps [参数]”。

  • 查看零碎中所有的过程

$ ps aux

参数作用
-a显示所有过程(包含其余用户的过程)
-u用户以及其余详细信息
-x显示没有管制终端的过程

如上图,咱们来看看以上输入信息中各列的具体含意:

列名含意
USER该过程是由哪个用户产生的
PID过程的 ID
%CPU该过程占用 CPU 资源的百分比,占用的百分比越高,过程越消耗资源
%MEM该过程占用物理内存的百分比,占用的百分比越高,过程越消耗资源
VSZ该过程占用虚拟内存的大小,单位为 KB
RSS该过程占用理论物理内存的大小,单位为 KB
TTY该过程是在哪个终端运行的。
STAT过程状态。
START该过程的启动工夫。
TIME该过程占用 CPU 的运算工夫,留神不是零碎工夫。
COMMAND产生此过程的命令名。

常见的 STAT 过程状态有以下几种:

  • D:不可被唤醒的睡眠状态,通常用于 I/O 状况
  • R:该过程正在运行
  • S:该过程处于睡眠状态,可被唤醒
  • T:进行状态,可能是在后盾暂停或过程处于除错状态
  • W:内存交互状态(从 2.6 内核开始有效)
  • X:死掉的过程(应该不会呈现)
  • Z:僵尸过程。过程曾经停止,然而局部程序还在内存当中
  • <:高优先级(以下状态在 BSD 格局中呈现)
  • N:低优先级
  • L:被锁入内存
  • s:蕴含子过程
  • l:多线程(小写 L)
  • +:位于后盾

查看零碎中所有的过程 ps -le

ps -le 能够查看零碎中所有的过程,而且还能看到过程的父过程的 PID 和过程优先级。

参数作用
-l长格局显示更加具体的信息;
-e显示所有过程;

如上图,咱们来看看以上输入信息中各列的具体含意:

列名含意
F过程标记,阐明过程的权限,常见的标记有两个:1 过程能够被复制,然而不能被执行;4:过程应用超级用户权限;
S过程状态。具体的状态和 ps aux 命令中的 STAT 状态统一;
UID运行此过程的用户的 ID;
PID过程的 ID;
PPID父过程的 ID;
C该过程的 CPU 使用率,单位是百分比;
PRI过程的优先级,数值越小,该过程的优先级越高,越早被 CPU 执行;
NI过程的优先级,数值越小,该过程越早被执行;
ADDR该过程在内存的哪个地位;
SZ该过程占用多大内存;
WCHAN该过程是否运行。”-“ 代表正在运行;
TTY该过程由哪个终端产生;
TIME该过程占用 CPU 的运算工夫,留神不是零碎工夫;
CMD产生此过程的命令名;

删除过程 kill

kill 可将指定的信息送至程序,默认的信息为 SIGTERM(15),可将指定程序终止。若仍无奈终止该程序,可应用 SIGKILL(9)信息尝试强制删除程序。kill 命令格局如下:

$ kill [信号] PID

信号编号信号名含意
0EXIT程序退出时收到该信息。
1HUP挂掉电话线或终端连贯的挂起信号,这个信号也会造成某些过程在没有终止的状况下从新初始化。
2INT示意完结过程,但并不是强制性的, 相当于用键盘输入 [ctrl]-c 来中断一个程序的进行
3QUIT退出
9KILL杀死过程,即强制完结过程
15TERM失常完结过程, 命令的默认信号
19SIGSTOP相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行

咱们用的最多的信号编号是 1,9,15。

最初咱们来看看所谓的“僵尸过程”,僵尸过程是当子过程比父过程先完结,而父过程又没有回收子过程,开释子过程占用的资源,此时子过程将成为一个僵尸过程。僵尸过程会对主机的稳定性产生影响,所以,在产生僵尸过程后,肯定要对产生僵尸过程的软件进行优化,防止始终产生僵尸过程;对于曾经产生的僵尸过程,能够在查找进去之后强制停止。

正文完
 0