Linux 中的进程终止

今天,我们将讨论 Linux 进程。 在 Linux 上运行的任何程序实例都是一个进程。 例如,如果您使用 Firefox 阅读本文,您可能会在 Linux 终端中通过键入“ps ax | grep firefox“ 命令。 我在这里提供了 Ubuntu 的屏幕截图,因此您可以看到输出在现实生活中的显示方式。

如您所见,Firefox 正在我的 Ubuntu 实例上运行。 现在,如果我们需要 close 在这种情况下,我们将使用进程终止。 这是 Linux 的高级水平,所以我建议你先学习 Linux 的基础知识。

Linux 中的进程

首先,我们需要了解您在操作系统上运行的任何程序或应用程序都称为进程。 进程管理是个很简单的东西,今天的文章中,我们将学习进程终止。

如果你想检查你的应用程序中正在运行的进程,你可以简单地给出一个“ps”命令。

$ ps     PID TTY          TIME CMD    3648 pts/0    00:00:00 bash    1493 pts/0    00:00:00 sleep    1300 pts/0    00:00:00 ps $ 

我们有不同的方法来终止进程。 在本文中,我们将讨论基本的进程管理和一些高级概念,如 SIGTERM(信号 15)、SIGINT 和其他命令。 让我们开始我们的文章。

Linux 中的进程终止

我们的系统上已经运行了不同的进程。 那么问题来了:什么是进程终止?

它是大多数操作系统中的一种操作,主要是在 Linux 等类 UNIX 操作系统中。 顾名思义,进程终止发生在进程终止时:大多数类 UNIX 操作系统都使用 exit()。 那么,为什么进程会终止呢? 发生这种情况的原因有很多。 例如,如果一个进程完成并离开处理器,它就会被终止。 当进程离开处理器时,它会释放其所有进程。

有时,父进程可能会发出命令终止其子进程。 失败和内存不足也是进程终止的常见原因。

1.通过PID杀死一个进程

我们可以使用 PID 手动终止进程。 PID 是进程 ID。 如果一个进程挂起或卡住而你需要杀死它,你可以这样做,但你必须知道进程 ID 或 PID。 如果您注意到,在“ps”命令中,我们有一个带有 PID 的列。 要终止进程,您必须发出 SIGTERM 信号。 为此,在 Linux 操作系统中,我们必须使用以下语法“杀死”。

$杀死PID

如果您正在处理卡住/挂起的进程,您也可以使用 -9 :

$ sudo 杀死-9 3212
[sudo] umair 的密码:
[1] 杀死睡眠 500

SIGTERM 信号是一个信号。 在 Linux OS 中,信号是不同进程之间的一种通信方式。 信号处理程序中断进程并自行执行。 不必每个信号都用于进程终止。 这取决于信号和程序的行为方式。 如果一个进程收到一个信号,它可能会继续正常执行,也可能不会。

如果我们谈论 SIGTERM 和 SIGQUIT,这两个信号用于根据用户请求终止进程。 我们刚才用来杀死进程的kill命令默认有SIGTERM信号。 您可以访问官方 Linux 网站文档了解不同的信号。 还有一些关于信号的论坛主题可以帮助您了解更多信息。

僵尸进程

万圣节结束了! 那么我们为什么要讨论僵尸呢? 什么是僵尸进程?

简单——如果一个进程作业执行完毕,但它仍然保留在进程表中,则称为僵尸进程。 Zombie 进程是子进程,它们的父进程需要读取子进程的 exit() 状态。 但是由于某些原因,父母可能会被跳过或卡住,无法收听僵尸进程。

在这里,我们来到下一点:处理此类过程。 这些进程继续存在,直到父进程因系统关闭而死亡。 下面给出僵尸进程的进程生命周期说明。

僵尸进程生命周期

当我们调用 exit() 系统调用时,所有的内存和资源都被释放了,但是进程在僵尸列表中仍然可用。 wait() 系统调用用于读取僵尸进程的退出状态。 如果父级没有调用,wait() 系统调用将是资源泄漏的结果。 另一种情况是如果父进程不再在进程表中。 在这种情况下,僵尸进程可用性被称为系统错误。 如果要杀死僵尸进程,请使用以下命令。

$ -s SIGCHLD PID

使用此命令时,请注意 PID 是父进程 ID。 如您所见,我们正在向父进程发送 SIDCHILD 信号以杀死僵尸进程。 这个信号起到警察的作用,并通过调用 wait() 通知父进程清理僵尸进程。 僵尸进程不使用任何资源。 所以,如果你有几个僵尸进程,它可能不会损害你的系统,但如果你有很多僵尸进程,它可能会占用很多 PID 并影响新进程的启动。

结论

我喜欢 Linux,并且在过去的 20 年里一直在使用 Linux。 它是一个高级操作系统,但并不完美(Linux 爱好者,不要生气。我认为它比 Windows 好得多)。 有时,一些应用程序开始表现异常或消耗大量系统资源。 在这种情况下,您需要重新启动系统,或者您需要管理进程。 今天的文章教我们管理不同的流程和有关流程的问题。