Téměř každý proces v Linuxu má ovládací terminál. Ale co je vlastně ovládací terminál? Pojďme to zjistit.

Možná jste slyšeli termín „řídící terminál“ používaný v souvislosti s procesy Linuxu. Možná jste zmateni tím, co je ovládací terminál. Naštěstí je ovládací terminál snadno pochopitelný.

Co je ovládací terminál?

Řídicí terminál je terminál, kde začíná proces Linuxu. Pokud například spustíte příkaz ze shellu, okno terminálu, do kterého jste příkaz zadali, je řídicí terminál.

Procesy spuštěné s řídícími terminály dědí atributy nadřazeného terminálu. To je způsobeno tím, jak jsou procesy spouštěny v Linuxu. Když spustíte příkaz, shell vytvoří svou kopii neboli „forks“ a poté se nahradí programem, který jste chtěli spustit, neboli „execs“.

Jak zjistit, které procesy mají řídicí terminál

Je snadné vidět procesy, které mají řídicí terminál v Linuxu. Můžeš použít příkaz ps abychom je viděli.

Můžete vidět všechny procesy patřící všem uživatelům v systému, ať už mají nebo nemají řídicí terminály, pomocí "aux" argument:

instagram viewer
ps aux

Protože to na systémech Linux generuje velké množství výstupu, může být užitečné zapojit jej do pageru, například méně:

ps aux | méně

Prvních několik řádků si můžete prohlédnout také pomocí nástroje head:

ps aux | hlava

Ve výstupu uvidíte sloupec označený „TTY“. To označuje řídicí terminál procesu, pokud existuje. Proces s řídícím terminálem zobrazí „ttyx“, kde „x“ je číslo terminálu nebo „pts“, za nímž následuje lomítko (/) a číslo řádku pseudoterminálu.

Protože většina terminálů jsou ve skutečnosti emulátory terminálů, používají pseudoterminály nebo PTY. "pts" označuje emulátor terminálu spíše než fyzický terminál nebo virtuální konzole.

Procesy bez řídicích terminálů

Na většině systémů Linux se ve sloupci TTY zobrazí a otazník (?) charakter v mnoha procesech. Proces totiž nemá řídicí terminál. Proč se to děje?

Linuxové systémy provozují na pozadí mnoho démonů neboli služeb. Mohou to být servery, jako je webový server, stejně jako démoni, kteří dělají spoustu základních věcí, jako je provoz vašeho síťového připojení. Ty nepotřebují používat terminál, takže běží bez něj.

Pokud spustíte grafickou aplikaci z nabídky desktopového prostředí, nebude mít ani ovládací terminál.

Terminálové multiplexory jako GNU Screen nebo tmux vám umožňují odpojit proces. Pokud se odhlásíte, ale necháte svůj systém spuštěný, možná zjistíte, že tento proces také postrádá ovládací terminál.

Pokud máte proces bez řídicího terminálu, kterého se chcete zbavit, můžete použít utilitu kill.

Nyní víte o ovládání terminálů

Řídicí terminál je terminál, ze kterého jste spustili příkaz. Je snadné zjistit, které procesy mají a nemají řídicí terminál s příkazem ps. A mnoho linuxových programů ne, buď proto, že jsou to démoni, nebo jste je možná odpojili pomocí terminálového multiplexeru.

Multiplexery, jako je tmux, nejenže udržují relace místního terminálu během přihlášení, ale jsou také výkonnými nástroji pro vzdálená připojení SSH.