دستور bg در لینوکس
در این بخش به بررسی دستور bg در لینوکس می پردازیم، سیستمعامل لینوکس به دلیل قدرت و انعطافپذیری خود در مدیریت فرآیندها و برنامهها، همواره یکی از محبوبترین سیستمها برای کاربران حرفهای و برنامهنویسان بوده است. در لینوکس، فرآیندها (processes) میتوانند در دو حالت اصلی اجرا شوند: به صورت foreground (پیشزمینه) و background (پسزمینه). هنگامی که فرآیندی در حالت پیشزمینه اجرا میشود، کاربر باید منتظر بماند تا این فرآیند پایان یابد، اما در حالت پسزمینه، کاربر میتواند به کارهای دیگری ادامه دهد و فرآیند در پسزمینه به کار خود ادامه میدهد.
یکی از دستورات بسیار مفید در مدیریت فرآیندهای پسزمینه در لینوکس، دستور bg است. این دستور به کاربر اجازه میدهد تا فرآیندهایی را که به صورت متوقف شده (stopped) هستند، به پسزمینه بازگرداند و ادامه اجرای آنها را مدیریت کند. در این مقاله، به بررسی کامل دستور bg میپردازیم و نحوه استفاده از آن در موقعیتهای مختلف را با ارائه مثالهای عملی بررسی خواهیم کرد.
مفهوم فرآیند در لینوکس
پیش از اینکه به دستور bg بپردازیم، بهتر است ابتدا با مفهوم فرآیندها در لینوکس آشنا شویم. فرآیند یا Process به هر برنامه یا دستوری اطلاق میشود که در حال اجرا در سیستم است. هر فرآیند در لینوکس یک شناسه منحصر به فرد به نام PID (Process ID) دارد. فرآیندها میتوانند به دو صورت پیشزمینه (Foreground) و پسزمینه (Background) اجرا شوند.
فرآیند پیشزمینه، فرآیندی است که تا زمانی که اجرا شود، ترمینال را اشغال کرده و شما نمیتوانید هیچ دستور دیگری را تا پایان اجرای آن وارد کنید. در مقابل، فرآیندهای پسزمینه بدون اشغال کردن ترمینال به کار خود ادامه میدهند و کاربر میتواند دستورات دیگر را همزمان با اجرای آنها وارد کند. دستور bg به ما این امکان را میدهد که فرآیندهای متوقف شده را به حالت پسزمینه بازگردانیم و آنها را دوباره اجرا کنیم.
اجرای فرآیند در پیشزمینه و پسزمینه
برای درک بهتر، ابتدا باید با اجرای یک فرآیند در پیشزمینه و پسزمینه آشنا شویم. به عنوان مثال، اگر یک برنامه مانند ping را در پیشزمینه اجرا کنیم، پنجره ترمینال ما قفل شده و نمیتوانیم دستور دیگری را وارد کنیم:
ping google.comدر این حالت، تنها راه توقف اجرای برنامه، استفاده از کلیدهای Ctrl + C برای خاتمه دادن به آن است. اما اگر بخواهیم همین برنامه را به صورت پسزمینه اجرا کنیم، میتوانیم با افزودن & به انتهای دستور، آن را به پسزمینه منتقل کنیم:
ping google.com &در این حالت، فرآیند در پسزمینه اجرا میشود و ما میتوانیم از ترمینال برای وارد کردن دستورات دیگر استفاده کنیم.
دستور bg در لینوکس چیست؟
دستور bg در لینوکس به منظور بازگرداندن فرآیندهای متوقف شده (stopped) به پسزمینه و ادامه اجرای آنها استفاده میشود. هنگامی که یک فرآیند در حالت توقف قرار دارد، میتوان با استفاده از دستور bg آن را به پسزمینه منتقل کرد تا بدون مسدود کردن ترمینال به کار خود ادامه دهد.
نحوه کارکرد دستور bg
فرض کنید یک فرآیند در پیشزمینه اجرا میشود و به هر دلیلی شما آن را متوقف کردهاید. برای توقف یک فرآیند پیشزمینه، میتوانید از ترکیب کلیدهای Ctrl + Z استفاده کنید. با این کار، فرآیند متوقف شده و ترمینال به شما باز میگردد. حال میتوانید با استفاده از دستور bg فرآیند متوقف شده را به پسزمینه منتقل کنید:
bgاین دستور آخرین فرآیند متوقف شده را به پسزمینه منتقل کرده و ادامه اجرای آن را ممکن میسازد.
استفاده از bg با مشخص کردن شماره فرآیند
در صورتی که چندین فرآیند متوقف شده دارید و میخواهید یکی از آنها را به پسزمینه منتقل کنید، میتوانید از شماره فرآیند (job number) استفاده کنید. برای مشاهده لیست فرآیندهای متوقف شده و در حال اجرا، میتوانید از دستور jobs استفاده کنید:
jobsاین دستور لیستی از فرآیندهای متوقف شده و پسزمینه را نمایش میدهد. سپس میتوانید با استفاده از دستور bg و شماره فرآیند مورد نظر، آن فرآیند خاص را به پسزمینه منتقل کنید. برای مثال، اگر شماره فرآیند 2 باشد:
bg %2در این حالت، فرآیند شماره 2 به پسزمینه منتقل میشود و اجرای آن ادامه مییابد.
کاربردهای عملی دستور bg
مثال ۱: اجرای همزمان چند دستور
فرض کنید میخواهید دو برنامه سنگین را به صورت همزمان اجرا کنید، اما نمیخواهید منتظر بمانید تا هر کدام از آنها جداگانه تمام شوند. در این حالت، ابتدا برنامه اول را اجرا میکنید و با استفاده از Ctrl + Z آن را متوقف میکنید:
command1
Ctrl + Zسپس برنامه دوم را اجرا کرده و دوباره متوقف میکنید:
command2
Ctrl + Zاکنون میتوانید هر دو برنامه را با استفاده از دستور bg به پسزمینه منتقل کنید:
bg %1
bg %2با این کار، هر دو برنامه به صورت پسزمینه اجرا میشوند و شما میتوانید به کارهای دیگری بپردازید.
مثال ۲: مدیریت فرآیندهای متوقف شده
تفاوت دستور bg و fg
گاهی ممکن است این سوال پیش بیاید که تفاوت بین دستورات bg و fg چیست؟ دستور bg فرآیند متوقف شده را به پسزمینه منتقل کرده و به اجرا ادامه میدهد، در حالی که دستور fg فرآیند متوقف شده را به پیشزمینه باز میگرداند. اگر میخواهید فرآیند متوقف شدهای را در پیشزمینه اجرا کنید تا ترمینال را اشغال کند، میتوانید از دستور fg استفاده کنید:
fg %2این دستور فرآیند شماره 2 را به پیشزمینه منتقل کرده و کنترل ترمینال را به آن فرآیند میدهد.
دستور bg یکی از ابزارهای قدرتمند در لینوکس برای مدیریت فرآیندها است. این دستور به شما اجازه میدهد تا فرآیندهای متوقف شده را به پسزمینه منتقل کرده و بدون توقف کار خود به اجرای فرآیندها ادامه دهید. با استفاده از bg میتوانید بهرهوری خود را افزایش داده و به صورت همزمان چندین فرآیند را مدیریت کنید. یادگیری و استفاده از این دستور برای هر کاربر لینوکسی که به دنبال مدیریت بهتر سیستم خود است، ضروری است.
منابع
- Official GNU Documentation
- Linux man page for bg command
- Linux Process Management
آیا این مطلب برای شما مفید بود ؟




