Takmer každý proces v Linuxe má riadiaci terminál. Ale čo je to vlastne riadiaci terminál? Poďme zistiť.
Možno ste už počuli pojem „riadiaci terminál“ používaný v súvislosti s procesmi Linuxu. Môžete byť zmätení, čo je ovládací terminál. Našťastie je ovládací terminál ľahko pochopiteľný.
Čo je riadiaci terminál?
Riadiaci terminál je terminál, kde sa spúšťa proces Linuxu. Ak napríklad spustíte príkaz z prostredia shell, okno terminálu, do ktorého ste zadali príkaz, je riadiacim terminálom.
Procesy spustené s riadiacimi terminálmi dedia atribúty nadradeného terminálu. Je to spôsobené spôsobom spúšťania procesov v systéme Linux. Keď spustíte príkaz, shell vytvorí svoju kópiu alebo „forks“, potom sa nahradí programom, ktorý ste chceli spustiť, alebo „execs“.
Ako zistiť, ktoré procesy majú riadiaci terminál
Je ľahké vidieť procesy, ktoré majú riadiaci terminál v Linuxe. Môžeš použiť príkaz ps vidieť ich.
Môžete vidieť všetky procesy patriace všetkým užívateľom v systéme, či už majú alebo nemajú riadiace terminály, pomocou "aux" argument:
ps aux
Pretože to generuje veľa výstupov na systémoch Linux, môže byť užitočné napojiť ho na pager, napríklad menej:
ps aux | menej
Prvých pár riadkov si môžete pozrieť aj pomocou nástroja head:
ps aux | hlavu
Vo výstupe uvidíte stĺpec označený ako „TTY“. Toto označuje riadiaci terminál procesu, ak existuje. Proces s riadiacim terminálom zobrazí „ttyx“, kde „x“ je číslo terminálu alebo „pts“, za ktorým nasleduje lomka (/) a číslo pseudoterminálu.
Pretože väčšina terminálov sú v skutočnosti emulátory terminálov, používajú pseudoterminály alebo PTY. „Pts“ označuje skôr emulátor terminálu ako fyzický terminál alebo virtuálna konzola.
Procesy bez riadiacich terminálov
Na väčšine systémov Linux sa v stĺpci TTY zobrazí a otáznik (?) charakter v mnohých procesoch. Je to preto, že proces nemá riadiaci terminál. Prečo sa to deje?
Linuxové systémy spúšťajú na pozadí veľa démonov alebo služieb. Môžu to byť servery, ako napríklad webový server, ako aj démoni, ktorí robia veľa základných vecí, ako je napríklad spustenie sieťového pripojenia. Nepotrebujú používať terminál, takže bežia len bez neho.
Ak spustíte grafickú aplikáciu z ponuky prostredia pracovnej plochy, nebude mať ani ovládací terminál.
Terminálové multiplexory ako GNU Screen alebo tmux vám umožňujú odpojiť proces. Ak sa odhlásite, ale necháte svoj systém spustený, možno zistíte, že tomuto procesu chýba aj riadiaci terminál.
Ak máte proces bez riadiaceho terminálu, ktorého sa chcete zbaviť, môžete použiť utilitu kill.
Teraz viete o ovládaní terminálov
Riadiaci terminál je terminál, z ktorého ste spustili príkaz. Je ľahké vidieť, ktoré procesy majú a nemajú riadiaci terminál s príkazom ps. A mnoho linuxových programov nie, buď preto, že sú to démoni, alebo ste ich možno odpojili pomocou terminálového multiplexora.
Multiplexory, ako je tmux, nielenže udržiavajú lokálne terminálové relácie počas prihlásení, ale sú tiež výkonnými nástrojmi pre vzdialené pripojenia SSH.