首页 > 编程笔记

Linux进程管理及作用

在 Linux 系统中,无论是系统管理员还是普通用户,都需要实时的监控系统进程的运行情况,当系统进程出现错误时能够及时关闭一些进程以防止系统出现混乱。

在 Windows 系统中,主要使用任务管理器来对进程进行管理,而在 Linux 系统中主要使用命令行进行进程管理,两者对进程管理的目的都是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和及时制止不需要的进程等。

在前面章节中,我们了解了进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。那么什么是程序呢?

程序就是人们使用计算机语言编写的可以实现一定的功能并且可以解决特定问题的代码的集合。而进程则是正在执行中的程序。当程序被执行时,所执行人的权限、属性以及程序的代码都会被载入内存,操作系统给这个进程分配一个 ID,称为 PID,即进程 ID。

在操作系统中,所有可以执行的程序与命令都会产生进程。只是有些程序和命令很简单,它们在执行完后就会结束,其相应的进程也会终结,因此很难捕捉到这些进程。另外还有一些进程和命令,启动之后会一直停留在系统当中,因此可以把这样的进程称作常驻内存进程。

注意,某些进程会产生一些新的进程,这些进程被称为子进程,把这个进程本身称作父进程。子进程依赖父进程而产生,当父进程不存在时,那么子进程也就不存在了。

在 Windows 系统中,通常是使用任务管理器来强制关闭没有任何反应的软件,也就是结束进程。这是在诸多进程管理工具和命令中最常见的方法之一,但强制终止进程这种方法在进程的管理工作中并不常用,因为每个进程都有自己正确的结束方法,而强制终止进程则是在正常方法已经失效的情况下的后续步骤。

那么我们为什么要对进程进行管理呢?进程管理主要有 3 个用途,具体介绍如下:

1) 用来判断服务器的状态。
进程管理最主要的工作就是用来判断服务器当前运行的状态是否需要进行手动修改。如果服务器的 CPU 占用率、内存占用率都比较高的话,那么就需要手动去解决这些问题。

当发现服务器的 CPU 占用率、内存占用率都很高时,首先需要判断这个进程是否是正常进程,如果是正常进程,则说明服务器已经不能满足应用的需求,需要更换更好的硬件来满足目前服务器的需求;如果是非法进程占用了系统资源,则不能直接中止进程,而需要判断非法进程的来源、作用和所在位置,这样才能把它彻底清除。

2) 查看系统中所有的进程。
在进程管理工作中需要查看系统中所有正在运行的进程,通过这些进程可以判断系统中运行了哪些服务、是否有非法服务正在运行以便于及时终止,从而减少内存的占有率。

3) 直接杀死进程。
直接杀死进程是进程管理中最不常用的手段。当需要停止服务时,通常会通过正确的关闭命令来停止服务。只有在正确终止进程的手段失效的情况下,才会考虑使用 kill 命令(在后面会详细介绍)杀死进程。

Linux 系统中的进程管理和 Windows 系统中的任务管理器的作用都是非常类似的。但在 Windows 系统中使用任务管理器大多数情况下都是为了杀死进程,而在 Linux 系统中则是为了判断服务器的运行状态是否合理。

优秀文章