「tty」「デーモン」ってなんぞやなちょっとしたメモ

はじめに

こんにちは!
最近、Dockerを動かしてみた際に、疑問に思ったことがあったので、簡単ではありますが、まとめてみました。

「tty」は名札のようなもの

まずはじめに、Linuxはマルチユーザー (複数のユーザーが同時に同一マシンを利用できる)として設計されたOSです。
なので、同一マシン上に同時に複数のユーザがログインして、並行して作業することができるのですね。

このように設計されているので、Linuxマシン内には、複数のユーザーがログインできるように、複数の「端末」が割当てられるよう準備されています。
なので、ユーザーがマシンにログインすると、そのユーザに対して、マシン内の特定の端末が割り当てられるのですね。
そしてこのとき、「端末」に「名札」のようなものをつけてくれるんですね。
この「名札」が「tty」です。

これは、以下のように、「ttyコマンド」を使って確認できます。

$ tty
/dev/pts/1

この、

/dev/pts/1

が、「名札」(標準入出力となっている端末デバイス)です。これは、特定の端末に対応するデバイスファイルのパスで名付けられているようです。(ちなみに、このttyは、テレ・タイプライターの略だそう。)

実際に、ターミナルなどを複数立ちあげて「tty」と打ってみると、
違う「名札」が割り当てられているのでわかりやすいかもしれないですね。

この「名札」をつけることによって、手作業で端末上でコマンドを打ち込む場合に、
そのコマンドが「どの端末上で実行されたか」を確認できるようになっているんですね。

端末を終了する際には、その端末にひもづいた全てのプロセスが終了されます。

影で動く守護神デーモン

しかしながら、端末は終了しても実行し続けたい!という場合がありますよね。
例えば、端末で、あるユーザがログインして,webサーバー(Apacheなど)を起動した後、
ログアウトしたときにwebサーバーが終了してしまうと困ります。

そのため、端末が終了しても、影でずっと動いてくれているプロセスが必要です。
こういう影で頑張って動いてくれているプロセスの事をデーモン(daemon)と呼びます。

ちなみに、デーモンさんは、ギリシャ神話に登場する守護神の名前らしい(かっこいい!)

(余談ですが、筆者は中学生くらいの頃初めてMAILER-DAEMONさん(メールサーバーからエラーメール通知を行うプログラム)からメールが返ってきた時、めーらー太衛門...!?となった記憶があります)

このデーモンさんは特定の端末に所属していないので、端末を終了していても動いてくれているのですね。(デーモンさんは、所属する端末がないので、ログにエラーなどを出力してくれます。)

おわりに

以上、ttyとデーモンについて少しは知ることができたかと思います。
Linux関連の知識は奥が深く、まだまだ知らないことがたくさんありますね。
引き続き理解を深めていきたいですー!