با سلام و عرض ادب، مسئله ای دیگهای که اکثر ادمینها با آن درگیر هستند، اجرای یک دستور است که ممکن است زمان زیادی نیاز داشته باشد و همواره با مسائلی از قبیل قطع شدن شبکه و یا time out شدن ارتباط آنها با سرور روبرو هستند. از اینرو به معرفی یک utility به نام screen میپردازیم:
طرز کار این برنامه بسیار ساده است. برای شروع قبل از زدن دستور مورد نظر، میبایست دستور screen زده شود. پس از آن میتوان دستورات مورد نظر را زد و حتی shell موجود را بست (دستور مورد نظر در background اجرا خواهد شد).
حال شما قادر خواهید بود در shell جدیدی (البته با همان کاربر) دستور خود را به foreground برگردانید.
با یک مثال ساده کار را جلو میبریم:
با نرمافزاری مانند putty به سرور موردنظر متصل شوید و دستور screen را بزنید:
#screen
سپس دستور top را بزنید:
#top
Putty خود را ببندید و یا برای Detach کردن دستور از shell از ctrl+A و در ادامه دکمهی d استفاده کنید. در همین لحظه که شما Putty را بستهاید دستور top در سرور در حال اجرا است. شما میتوانید با استفاده از یک shell جدید و دستور screen -ls لیست screenهای خود را ببینید و با دستور screen -r screen_id دستور را به shell جدید منتقل کنید.
#screen -ls
There is a screen on:
26319.pts-3.mahmoud-pc (Detached)
1 Socket in /var/run/screen/S-mahmoud.
ما میتوانیم بدون در نظر گرفتن shell قبلی، در shell جدید دستور top را ظاهر کنیم. برای این منظور ابتدا باید Detach انجام شود (درصورت باز بودن shell قبلی و Attached بودن دستور) و پس از آن دستور Attach مجدد.
#screen -dr 26319.pts-3.mahmoud-pc
سوئیچ d وظیفهی Detach کردن و r وظیفهی Attach کردن مجدد را
به عهده دارند و 26319.pts-3.mahmoud-pc نشان دهندهی screen id است.
شما برای kill کردن screen خود بدون باز کردن و Attach کردن آن میتوانید از دستور زیر استفاده کنید:
screen -X -S <sessionid> kill
- ۹۶/۱۲/۲۰
بسیار عایل استاد کاظمی.
شما ویژوال بیسیک دات نت هم کار می کنید ؟