Beveik kiekvienas „Linux“ procesas turi valdymo terminalą. Bet kas iš tikrųjų yra valdymo terminalas? Išsiaiškinkime.
Galbūt girdėjote terminą „valdymo terminalas“, vartojamą kalbant apie Linux procesus. Galite būti sumišę dėl to, kas yra valdymo terminalas. Laimei, valdymo terminalą lengva suprasti.
Kas yra valdymo terminalas?
Valdymo terminalas yra terminalas, kuriame prasideda Linux procesas. Pavyzdžiui, jei paleidžiate komandą iš apvalkalo, terminalo langas, kuriame įvedėte komandą, yra valdymo terminalas.
Procesai, pradėti naudojant valdymo terminalus, paveldi pirminio terminalo atributus. Taip yra dėl to, kaip procesai paleidžiami Linux sistemoje. Kai paleidžiate komandą, apvalkalas sukuria savo kopiją arba „šakės“, tada pakeičia save programa, kurią norėjote paleisti, arba „execs“.
Kaip sužinoti, kurie procesai turi valdymo terminalą
Nesunku matyti procesus, kuriuose yra valdymo terminalas Linux sistemoje. Tu gali naudoti ps komanda juos pamatyti.
Galite matyti visus procesus, priklausančius visiems sistemos vartotojams, nesvarbu, ar jie turi valdymo terminalus, ar ne, naudodami
"aux" argumentas:ps aux
Kadangi tai sukuria daug išvesties „Linux“ sistemose, gali būti naudinga ją perkelti į gaviklį, pvz., mažiau:
ps aux | mažiau
Taip pat galite peržiūrėti kelias pirmąsias eilutes naudodami galvos įrankį:
ps aux | galva
Išvestyje pamatysite stulpelį, pažymėtą „TTY“. Tai rodo proceso valdymo terminalą, jei toks yra. Procesas su valdymo terminalu parodys „ttyx“, kur „x“ yra terminalo numeris arba „pts“, po kurio bus pasvirasis brūkšnys (/) ir pseudoterminalo eilutės numeris.
Kadangi dauguma terminalų iš tikrųjų yra terminalų emuliatoriai, jie naudoja pseudoterminalus arba PTY. „Taškai“ rodo terminalo emuliatorių, o ne fizinį terminalą arba virtualią konsolę.
Procesai nekontroliuojant terminalų
Daugumoje Linux sistemų TTY stulpelyje bus rodoma a Klaustukas (?) charakteris daugelyje procesų. Taip yra todėl, kad procesas neturi valdymo terminalo. Kodėl taip nutinka?
„Linux“ sistemose fone veikia daug demonų arba paslaugų. Tai gali būti serveriai, pvz., žiniatinklio serveris, taip pat demonai, kurie atlieka daugybę pagrindinių dalykų, pvz., paleidžia tinklo ryšį. Jiems nereikia naudoti terminalo, todėl jie tiesiog veikia be jo.
Jei paleisite grafinę programą iš darbalaukio aplinkos meniu, joje taip pat nebus valdymo terminalo.
Terminalo tankintuvai, tokie kaip GNU Screen arba tmux, leidžia atjungti procesą. Jei atsijungsite, bet toliau paleisite sistemą, galite pastebėti, kad šiame procese taip pat trūksta valdymo terminalo.
Jei turite procesą be valdymo terminalo, kurio norite atsikratyti, galite naudoti nužudymo įrankį.
Dabar jūs žinote apie terminalų valdymą
Valdymo terminalas yra terminalas, iš kurio paleidote komandą. Nesunku suprasti, kurie procesai turi ir kurie neturi valdymo terminalo su komanda ps. Ir daugelis „Linux“ programų to nedaro, nes jie yra demonai, arba galbūt jas atskyrėte naudodami terminalo multiplekserį.
Multiplekseriai, tokie kaip tmux, ne tik leidžia vietiniams terminalų seansams išlikti prisijungus, bet ir yra galingi nuotolinio SSH ryšio įrankiai.