فرمان لینوکس خیلی طول می کشد تا تمام شود؟ از هر یک از این شش روش برای ارسال آن به پس زمینه استفاده کنید.
دستورات لینوکس یک راه عالی برای تعامل با سیستم با استفاده از ترمینال است. با این حال، گاهی اوقات ممکن است مدتی طول بکشد تا کار مورد نظر به پایان برسد. این امر کاربران را مجبور میکند تا زمان زیادی منتظر بمانند تا فرآیند به پایان برسد یا به طور کلی یک پوسته جدید تولید کند.
خوشبختانه، میتوانید با پیروی از چند روش ساده، دستورات لینوکس را در پسزمینه اجرا کنید.
1. بعد از دستور خود یک آمپرسند اضافه کنید
سادهترین راه برای اجرای دستور پسزمینه لینوکس، اضافه کردن نماد آمپرسند (&) بعد از دستور است. به عنوان مثال، اگر ویرایشگر متن gedit را از ترمینال خود راه اندازی کنید، تا زمانی که ویرایشگر را نبندید، نمی توانید از پوسته استفاده کنید. با این حال، هنگامی که یک & اضافی به دستور خود اضافه می کنید، می توانید بلافاصله از پوسته استفاده کنید.
gedit &
2. از bg برای ارسال دستورات در حال اجرا به پس زمینه استفاده کنید
گاهی اوقات یک فرمان را اجرا می کنید تا متوجه شوید که اتمام آن خیلی بیشتر طول می کشد. با زدن کلیدهای Ctrl + Z و سپس استفاده از دستور bg می توانید به راحتی چنین دستوراتی را به پس زمینه ارسال کنید. با زدن Ctrl + Z روند اجرا متوقف می شود و bg آن را به پس زمینه می برد.
با تایپ jobs در ترمینال می توانید لیستی از تمام کارهای پس زمینه را مشاهده کنید. از دستور fg برای بازگشت به کار در حال اجرا استفاده کنید.
3. با nohup دستورات را به پس زمینه ارسال کنید
دستور nohup در لینوکس به مدیران اجازه می دهد تا دستورات ترمینال را اجرا کنند که در برابر سیگنال های HUP یا Hang Up مصون هستند. با استفاده از nohup می توانید به راحتی دستورات را در پس زمینه در لینوکس اجرا کنید.
مثال زیر یک اسکن پورت Nmap ساده را در پس زمینه اجرا می کند.
nohup sudo nmap -sS --top-ports=15 192.168.1.1/24
یکی از مزایای کلیدی nohup این است که دستورات شما حتی در صورت خروج از پوسته اجرا می شوند. علاوه بر این، فایل های ورود به سیستم اجرا را تولید می کند. به دنبال nohup.out در فهرست فعلی یا داخل $HOME بگردید.
4. دستورات پس زمینه را با استفاده از تغییر مسیرهای سیستم اجرا کنید
همچنین می توانید با استفاده از تغییر مسیرهای سیستم، دستورات پس زمینه را در لینوکس اجرا کنید. به عنوان مثال، اگر دستور ping زیر را اجرا کنید، پوسته شما آن را در پس زمینه اجرا می کند و بلافاصله کنترل ترمینال را به شما باز می گرداند.
ping -c5 8.8.8.8 >output.log 2>&1 &
در اینجا خروجی دستور ping به فایل output.log هدایت می شود. اگر میخواهید نتیجه را حذف کنید، میتوانید آن را با /dev/null جایگزین کنید. 2>&1 به Bash می گوید هر گونه خطا را به همان فایل هدایت کند. و نهایی به Bash سیگنال می دهد تا این دستور را در پس زمینه اجرا کند.
5. با استفاده از disown، دستورات لینوکس را برای اجرا در پس زمینه تنظیم کنید
دستور disown اجرای فرآیندها در پس زمینه را آسان می کند. ابتدا باید کار را با استفاده از عملگر & به پس زمینه ارسال کنید. سپس، dirown را تایپ کنید تا آن را از پوسته خود جدا کنید.
gedit &
disown
یکی از مزیتهای اصلی رد کردن این است که، مانند nohup، وقتی پوسته خود را میبندید یا از سیستم خارج میشوید، سیستم وظیفه شما را از بین نمیبرد.
6. با استفاده از tmux دستورات لینوکس را در پس زمینه اجرا کنید
tmux یک مالتی پلکسر قدرتمند است که به شما امکان می دهد چندین جلسه ترمینال را در یک پنجره واحد اجرا کنید. یادگیری نحوه استفاده و پیکربندی tmux در لینوکس یک انتخاب عالی برای افرادی است که با آن آشنا نیستند. tmux اجرای دستورات پس زمینه در لینوکس را بدون دردسر می کند.
tmux new -d &aposping -c 10 8.8.8.8 > output.log&apos
هنگامی که دستور tmux بالا را اجرا می کنید، دستور ping را در یک پوسته جداگانه اجرا می کند و آن را در پس زمینه اجرا می کند. با استفاده از این روش می توانید هر فرآیند یا دستور لینوکس را در پس زمینه شروع کنید.
دستورات لینوکس خود را در پس زمینه بگذارید
داشتن قابلیت اجرای دستورات در پس زمینه، مدیریت سیستم را برای ادمین ها موثرتر می کند. شما می توانید وظایف خود را به روش های مختلفی به پس زمینه ارسال کنید. ویژگیهای Bash مانند کاراکتر & و Ctrl + Z راحت هستند، اما وقتی پوسته بسته میشود، سیستم کار پسزمینه را از بین میبرد.
از سوی دیگر، ابزارهایی مانند nohup و disown حتی زمانی که از سیستم خارج می شوید یا پوسته را خاتمه می دهید، فرمان شما را اجرا می کنند.
اگر برنامه های خود را برای مدت طولانی در پس زمینه رها کنید، اگر به درستی کدگذاری نشوند، ممکن است به فرآیندهای زامبی تبدیل شوند. این فرآیندها می توانند سرعت سیستم را به میزان قابل توجهی کاهش دهند. بنابراین، مطمئن شوید که هر چند وقت یک بار فرآیندهای زامبی را شناسایی کرده و از بین ببرید.