2. 控制终端

当您检查正在运行的进程时,您会在 ps 命令的输出中注意到一个 TTY 字段。此字段很重要,因为它指示执行该命令的控制终端。理解这个概念是有效管理进程的关键。

什么是 TTY

TTY 是“Teletype”(电传打字机)的缩写,历史上它是与计算机交互的物理设备。在现代 Linux 系统中,TTY 指的是为进程提供标准输入和输出的终端。

您会遇到两种主要的终端类型:终端设备和伪终端设备。

终端设备与伪终端

A 真正的终端设备是允许您直接输入命令和查看输出的原生控制台。您可以通过切换到虚拟控制台来体验这一点。在许多系统上,您可以按 Ctrl-Alt-F1 访问 TTY1。您将在一个纯文本环境中看到一个登录提示符,没有图形界面。这是一个经典的终端设备。要返回图形会话,您通常可以使用 Ctrl-Alt-F7(确切的按键组合可能有所不同)。

A 另一方面,伪终端(PTS)是您最常使用的。当您在图形桌面环境中打开终端应用程序时,您使用的是 PTS。它们在窗口中模拟了一个终端。如果您检查 shell 的 ps tty 输出,您会看到其 TTY 列为 pts/*

控制终端的作用

大多数进程都绑定到一个控制终端。这意味着进程的生命周期与其启动它的终端会话相关联。例如,如果您在终端窗口中运行像 find 这样的程序然后关闭该窗口,find 进程也会被终止。

没有控制终端的进程

有些进程被称为守护进程(daemons),它们被设计为在后台运行并管理系统服务。这些进程通常在系统启动时启动,仅在系统关闭时停止。

为了防止它们被意外终止,守护进程不附加到控制终端。当您学习如何使用 ps 来检查这些进程时,您会在 TTY 列中看到一个问号(?)。这个 ? 表示该进程没有控制终端,并且独立于任何用户会话运行。

登录以保存您的学习进度

登录

练习

实践造就完美!这是一个实践操作实验,用于巩固您对 Linux 进程及其与终端交互的理解:

  1. 管理和监控 Linux 进程 - 在此实验中,您将学习管理和监控 Linux 系统进程的基本技能。您将探索如何与前台和后台进程交互,使用 ps 检查它们,使用 top 监控资源,使用 renice 调整优先级,以及使用 kill 终止它们。

此实验将帮助您在实际场景中应用进程管理概念,并增强对进程如何运行和与系统交互的理解。

测验

对于没有控制终端的进程,会给出什么值?