Gotovo svaki proces u Linuxu ima upravljački terminal. Ali što je uopće upravljački terminal? Hajde da vidimo.

Možda ste čuli izraz "kontrolni terminal" koji se koristi u vezi s Linux procesima. Možda ste zbunjeni oko toga što je upravljački terminal. Srećom, upravljački terminal je lako razumjeti.

Što je upravljački terminal?

Upravljački terminal je terminal na kojem počinje Linux proces. Na primjer, ako pokrenete naredbu iz ljuske, prozor terminala u koji ste unijeli naredbu je upravljački terminal.

Procesi pokrenuti s kontrolnim terminalima nasljeđuju atribute nadređenog terminala. To je zbog načina na koji se procesi pokreću u Linuxu. Kada pokrenete naredbu, ljuska izrađuje svoju kopiju ili se "račva", a zatim se zamjenjuje programom koji želite pokrenuti ili "izvršava".

Kako vidjeti koji procesi imaju upravljački terminal

Lako je vidjeti procese koji imaju upravljački terminal u Linuxu. Možeš koristiti naredba ps vidjeti ih.

Možete vidjeti sve procese koji pripadaju svim korisnicima u sustavu, bez obzira imaju li upravljačke terminale ili ne, korištenjem "aux" argument:

ps pom

Budući da ovo generira mnogo izlaza na Linux sustavima, može biti korisno prenijeti ga u pager, kao što je less:

ps aux | manje

Također možete vidjeti prvih nekoliko redaka pomoću uslužnog programa za glavu:

ps aux | glava

U izlazu ćete vidjeti stupac s oznakom "TTY". Ovo označava upravljački terminal procesa, ako postoji. Proces s kontrolnim terminalom prikazat će "ttyx" gdje je "x" broj terminala ili "pts", nakon čega slijedi kosa crta (/) i broj linije pseudoterminala.

Budući da je većina terminala zapravo emulator terminala, oni koriste pseudoterminale ili PTY-ove. "Pts" označava emulator terminala, a ne fizički terminal ili virtualna konzola.

Procesi bez kontrolnih terminala

Na većini Linux sustava, stupac TTY prikazat će a upitnik (?) karakter u mnogim procesima. To je zato što proces nema upravljački terminal. Zašto se to događa?

Linux sustavi pokreću mnogo demona ili usluga u pozadini. To mogu biti poslužitelji, kao što je web poslužitelj, kao i demoni koji rade mnoge osnovne stvari poput pokretanja vaše mrežne veze. Ovi ne trebaju koristiti terminal, pa jednostavno rade bez njega.

Ako pokrenete grafičku aplikaciju iz izbornika desktop okruženja, ni ona neće imati upravljački terminal.

Terminalni multiplekseri poput GNU Screen ili tmux omogućuju vam odvajanje procesa. Ako se odjavite, ali nastavite s radom sustava, možete otkriti da tom procesu također nedostaje upravljački terminal.

Ako imate proces bez upravljačkog terminala kojeg se želite riješiti, možete koristiti uslužni program za ubijanje.

Sada znate o upravljanju terminalima

Upravljački terminal je terminal s kojeg ste pokrenuli naredbu. Pomoću naredbe ps lako je vidjeti koji procesi imaju, a koji nemaju upravljački terminal. A mnogi Linux programi to ne čine, ili zato što su demoni ili ste ih možda odvojili pomoću terminalskog multipleksera.

Multiplekseri kao što je tmux ne samo da omogućuju da lokalne sesije terminala traju tijekom prijave, već su i moćni alati za udaljene SSH veze.