2. ターミナルの制御

実行中のプロセスを調べると、ps コマンドの出力に TTY フィールドがあることに気づくでしょう。このフィールドは、コマンドを実行した制御端末を示すため重要です。この概念を理解することは、プロセスを効果的に管理するための鍵となります。

TTY とは何か

TTY は「テレタイプ」の略で、歴史的にはコンピューターと対話するための物理デバイスでした。現代の Linux システムでは、TTY はプロセスの標準入出力を提供する端末を指します。

遭遇する端末には、端末デバイスと擬似端末デバイスの 2 つの主要なタイプがあります。

端末デバイスと擬似端末(PTS)

真の端末デバイスは、コマンドを入力して結果を直接表示できるネイティブコンソールです。仮想コンソールに切り替えることで、これを体験できます。多くのシステムでは、Ctrl-Alt-F1 を押して TTY1 にアクセスできます。グラフィカルインターフェースのない、純粋にテキストベースの環境でログインプロンプトが表示されます。これが古典的な端末デバイスです。グラフィカルセッションに戻るには、通常 Ctrl-Alt-F7 を使用します(正確なキーの組み合わせは異なる場合があります)。

一方、擬似端末(PTS)は、最も一般的に使用するものです。グラフィカルデスクトップ環境内でターミナルアプリケーションを開くとき、PTS を使用しています。これらはウィンドウ内で端末をエミュレートします。シェルの ps tty の出力を確認すると、その TTY は pts/* としてリストされます。

制御端末の役割

ほとんどのプロセスは制御端末にバインドされています。これは、プロセスのライフサイクルがそれを開始した端末セッションに結びついていることを意味します。たとえば、ターミナルウィンドウで find のようなプログラムを実行し、そのウィンドウを閉じると、find プロセスも終了します。

制御端末を持たないプロセス

デーモンとして知られる一部のプロセスは、バックグラウンドで実行され、システムサービスを管理するように設計されています。これらのプロセスはシステム起動時に開始し、シャットダウン時にのみ停止します。

偶発的な終了を防ぐため、デーモンは制御端末にアタッチされていません。ps の使い方を学んでこれらのプロセスを調べると、TTY 列に疑問符(?)が表示されます。この ? は、プロセスが制御端末を持たず、ユーザーセッションから独立して実行されていることを示します。

ログインして学習進捗を保存

サインイン

演習

練習あるのみです!Linux プロセスとその端末との相互作用の理解を深めるための実践的なラボを以下に示します。

  1. Linux プロセスの管理と監視 - このラボでは、Linux システムでプロセスを管理および監視するための必須スキルを学びます。フォアグラウンドおよびバックグラウンドプロセスとの対話方法、ps を使用した検査、top を使用したリソース監視、renice を使用した優先度の調整、kill を使用した終了方法を探ります。

このラボは、プロセス管理の概念を実際のシナリオに適用し、プロセスがどのように実行され、システムとどのように相互作用するかを理解する自信を高めるのに役立ちます。

クイズ

制御端末を持たないプロセスにはどのような値が与えられますか?