خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

ترمینال کنترل در لینوکس چیست؟

تقریباً هر فرآیند در لینوکس دارای یک ترمینال کنترل کننده است. اما ترمینال کنترل کننده چیست؟ بیایید دریابیم.

ممکن است اصطلاح “ترمینال کنترل” را در رابطه با فرآیندهای لینوکس شنیده باشید. ممکن است در مورد اینکه ترمینال کنترلی چیست گیج شوید. خوشبختانه، درک ترمینال کنترل کننده آسان است.

ترمینال کنترل چیست؟

ترمینال کنترل ترمینالی است که در آن فرآیند لینوکس شروع می شود. به عنوان مثال، اگر دستوری را از پوسته اجرا کنید، پنجره ترمینال که در آن دستور را وارد کرده اید، ترمینال کنترل است.

فرآیندهایی که با پایانه های کنترلی راه اندازی می شوند، ویژگی های ترمینال والد را به ارث می برند. این به دلیل راه اندازی فرآیندها در لینوکس است. هنگامی که دستوری را اجرا می کنید، پوسته یک کپی از خود یا “forks” می سازد، سپس خود را با برنامه ای که می خواهید اجرا کنید یا “execs” جایگزین می کند.

نحوه مشاهده اینکه کدام فرآیندها دارای ترمینال کنترلی هستند

خروجی ps فرآیندها را با پایانه های کنترل نشان می دهد

دیدن فرآیندهایی که دارای ترمینال کنترلی در لینوکس هستند آسان است. برای دیدن آنها می توانید از دستور ps استفاده کنید.

با استفاده از آرگومان “aux” می توانید تمام فرآیندهای متعلق به همه کاربران در سیستم را ببینید، خواه پایانه های کنترلی داشته باشند یا نداشته باشند:

ps aux

از آنجا که این خروجی های زیادی را در سیستم های لینوکس تولید می کند، می تواند مفید باشد که آن را به یک پیجر وارد کنید، مانند موارد زیر:

ps aux | less

همچنین می توانید چند خط اول را با استفاده از ابزار head مشاهده کنید:

ps aux | head

در خروجی، ستونی با عنوان “TTY” مشاهده خواهید کرد. این ترمینال کنترل فرآیند را نشان می دهد، در صورت وجود. یک فرآیند با یک پایانه کنترل کننده “ttyx” را نشان می دهد که در آن “x” شماره پایانه یا “pts” است، به دنبال آن یک اسلش (/) و شماره خط شبه پایانی وجود دارد.

مطلب مرتبط:   چگونه از شر علامت فلش غیر مجاز در لینوکس خلاص شویم

از آنجایی که اکثر ترمینال ها در واقع شبیه ساز ترمینال هستند، از شبه ترمینال ها یا PTY استفاده می کنند. “pts” به جای یک ترمینال فیزیکی یا کنسول مجازی، یک شبیه ساز ترمینال را نشان می دهد.

فرآیندهای بدون پایانه های کنترلی

فایرفاکس با ترمینال که نشان می دهد بدون ترمینال کنترلی راه اندازی شد

در اکثر سیستم های لینوکس، ستون TTY یک کاراکتر علامت سوال (؟) را در بسیاری از فرآیندها نمایش می دهد. این به این دلیل است که فرآیند ترمینال کنترلی ندارد. چرا این اتفاق می افتد؟

سیستم های لینوکس دیمون ها یا سرویس های زیادی را در پس زمینه اجرا می کنند. اینها می توانند سرورهایی مانند وب سرور و همچنین دیمون هایی باشند که کارهای اساسی زیادی مانند اجرای اتصال شبکه شما را انجام می دهند. اینها نیازی به استفاده از ترمینال ندارند، بنابراین فقط بدون ترمینال اجرا می شوند.

اگر یک برنامه گرافیکی را از منوی محیط دسکتاپ راه اندازی کنید، آن ترمینال کنترلی نیز نخواهد داشت.

مالتی پلکسرهای ترمینال مانند GNU Screen یا tmux به شما این امکان را می دهند که یک فرآیند را جدا کنید. اگر از سیستم خارج شوید اما سیستم خود را در حال اجرا نگه دارید، ممکن است متوجه شوید که آن فرآیند همچنین فاقد ترمینال کنترلی است.

اگر فرآیندی بدون ترمینال کنترلی دارید که می‌خواهید از شر آن خلاص شوید، می‌توانید از ابزار kill استفاده کنید.

اکنون در مورد کنترل پایانه ها می دانید

ترمینال کنترل ترمینالی است که شما دستوری را از آن راه اندازی کرده اید. با دستور ps به راحتی می توان فهمید که کدام فرآیندها ترمینال کنترلی انجام می دهند و ندارند. و بسیاری از برنامه های لینوکس این کار را نمی کنند، یا به این دلیل که شیطان هستند یا ممکن است آنها را با یک مالتی پلکسر ترمینال جدا کرده باشید.

مطلب مرتبط:   نحوه تنظیم منطقه زمانی با استفاده از ترمینال لینوکس

مالتی پلکسرهایی مانند tmux نه تنها باعث می‌شوند که جلسات ترمینال محلی در سراسر ورود به سیستم ادامه پیدا کنند، بلکه ابزار قدرتمندی برای اتصالات SSH از راه دور نیز هستند.