Почти всеки процес в Linux има управляващ терминал. Но какво изобщо е контролен терминал? Нека разберем.

Може да сте чували термина „контролиращ терминал“, използван във връзка с процесите на Linux. Може да сте объркани какво е контролен терминал. За щастие, управляващият терминал е лесен за разбиране.

Какво е контролен терминал?

Управляващият терминал е терминал, където стартира Linux процес. Например, ако изпълните команда от обвивката, прозорецът на терминала, където сте въвели командата, е управляващият терминал.

Процесите, стартирани с управляващи терминали, наследяват атрибутите на родителския терминал. Това се дължи на начина, по който процесите се стартират в Linux. Когато изпълните команда, обвивката прави копие на себе си или „разклонява“, след което се заменя с програмата, която искате да изпълните, или „execs“.

Как да видите кои процеси имат управляващ терминал

Лесно е да видите процеси, които имат управляващ терминал в Linux. Можеш да използваш командата ps да ги видя.

Можете да видите всички процеси, принадлежащи на всички потребители в системата, независимо дали имат или не управляващи терминали, като използвате

instagram viewer
„помощ“ аргумент:

ps доп

Тъй като това генерира много изходни данни на Linux системи, може да бъде полезно да го насочите към пейджър, като по-малко:

ps aux | по-малко

Можете също да видите първите няколко реда, като използвате помощната програма за глава:

ps aux | глава

В резултата ще видите колона с надпис „TTY“. Това показва контролния терминал на процеса, ако има такъв. Процес с управляващ терминал ще покаже „ttyx“, където „x“ е номерът на терминала или „pts“, последван от наклонена черта (/) и номера на линията на псевдотерминала.

Тъй като повечето терминали всъщност са терминални емулатори, те използват псевдотерминали или PTY. "pts" показва терминален емулатор, а не физически терминал или виртуална конзола.

Процеси без контролни терминали

На повечето Linux системи колоната TTY ще показва a въпросителен знак (?) характер в много процеси. Това е така, защото процесът няма управляващ терминал. Защо това се случва?

Linux системите изпълняват много демони или услуги във фонов режим. Това могат да бъдат сървъри, като например уеб сървър, както и демони, които правят много основни неща, като стартиране на вашата мрежова връзка. Те не се нуждаят от използване на терминал, така че те просто работят без такъв.

Ако стартирате графично приложение от менюто на десктоп среда, това също няма да има контролен терминал.

Терминалните мултиплексори като GNU Screen или tmux ви позволяват да отделите процес. Ако излезете, но поддържате системата си работеща, може да откриете, че този процес също няма управляващ терминал.

Ако имате процес без управляващ терминал, от който искате да се отървете, можете да използвате помощната програма за убиване.

Вече знаете за управлението на терминали

Управляващ терминал е терминал, от който сте стартирали команда. Лесно е да видите кои процеси имат и кои нямат управляващ терминал с командата ps. И много Linux програми не го правят, или защото са демони, или може да сте ги отделили с терминален мултиплексор.

Мултиплексори като tmux не само карат локалните терминални сесии да продължават при влизане, но те също са мощни инструменти за отдалечени SSH връзки.