A Linuxban szinte minden folyamatnak van vezérlőterminálja. De mi is az a vezérlő terminál? Találjuk ki.

Talán hallotta már a „vezérlő terminál” kifejezést a Linux folyamatokkal kapcsolatban. Lehet, hogy megzavarod, mi az a vezérlő terminál. Szerencsére a vezérlő terminál könnyen érthető.

Mi az a vezérlőterminál?

A vezérlő terminál egy olyan terminál, ahol egy Linux folyamat elindul. Például, ha parancsot futtat a shellből, akkor az a terminálablak, amelybe a parancsot beírta, a vezérlő terminál lesz.

A vezérlő terminálokkal elindított folyamatok öröklik a szülőterminál attribútumait. Ez annak köszönhető, ahogyan a folyamatokat elindítják a Linuxban. Amikor futtat egy parancsot, a shell másolatot készít magáról, vagy „elágazódik”, majd lecseréli magát a futtatni kívánt programmal vagy „execs”-re.

Hogyan lehet megnézni, hogy mely folyamatoknak van vezérlőterminálja?

Könnyű látni azokat a folyamatokat, amelyeknek van vezérlő terminálja a Linuxban. Te tudod használni a ps parancsot látni őket.

instagram viewer

A segítségével megtekintheti a rendszer összes felhasználójához tartozó összes folyamatot, függetlenül attól, hogy rendelkeznek-e vezérlő terminállal vagy sem "aux" érv:

ps aux

Mivel ez sok kimenetet generál Linux rendszereken, hasznos lehet, ha egy lapozóba vezeti be, például kevesebb:

ps aux | Kevésbé

Az első néhány sort a fej segédprogrammal is megtekintheti:

ps aux | fej

A kimenetben egy „TTY” feliratú oszlop jelenik meg. Ez a folyamat vezérlő terminálját jelzi, ha van ilyen. A vezérlő terminállal rendelkező folyamat a „ttyx” kifejezést jeleníti meg, ahol az „x” a terminál száma vagy „pts”, amelyet egy perjel (/) és a pszeudoterminál sorszáma követ.

Mivel a legtöbb terminál valójában terminálemulátor, pszeudoterminálokat vagy PTY-ket használnak. A "pts" terminálemulátort jelöl, nem pedig fizikai terminált vagy virtuális konzol.

Folyamatok terminálok vezérlése nélkül

A legtöbb Linux rendszeren a TTY oszlopban megjelenik a kérdőjel (?) karakter sok folyamatban. Ennek az az oka, hogy a folyamatnak nincs vezérlő terminálja. Miért történik ez?

A Linux rendszerek sok démont vagy szolgáltatást futtatnak a háttérben. Ezek lehetnek szerverek, például webszerverek, valamint olyan démonok, amelyek sok alapvető dolgot végeznek, például a hálózati kapcsolat futtatását. Ezekhez nincs szükség terminál használatára, így egyszerűen futnak anélkül.

Ha egy grafikus alkalmazást az asztali környezet menüjéből indít el, annak sem lesz vezérlőterminálja.

A terminál multiplexerek, például a GNU Screen vagy a tmux lehetővé teszik a folyamatok leválasztását. Ha kijelentkezik, de továbbra is fut a rendszer, előfordulhat, hogy a folyamatból hiányzik a vezérlő terminál.

Ha van egy vezérlő terminál nélküli folyamat, amelytől meg akar szabadulni, használhatja a kill segédprogramot.

Most már ismeri a terminálok vezérlését

A vezérlő terminál egy olyan terminál, amelyről parancsot indított. A ps paranccsal könnyen belátható, hogy mely folyamatoknak van és nincs vezérlő terminálja. És sok Linux-program nem, vagy azért, mert démonok, vagy esetleg terminálmultiplexerrel választotta le őket.

A tmux-hoz hasonló multiplexerek nemcsak a helyi terminál-munkamenetek fennmaradását teszik lehetővé a bejelentkezések között, hanem hatékony eszközök a távoli SSH-kapcsolatokhoz is.