DISLOCATE(1) General Commands Manual DISLOCATE(1)

Dislocate - قطع اتصال و اتصال مجدد فرآیندها

dislocate [ program args... ]

Dislocate امکان قطع اتصال فرآیندها و اتصال دوباره آن‌ها به ترمینال را فراهم می‌کند. کاربردهای احتمالی:

•
می‌توانید فرآیندی را از ترمینال محل کار جدا کرده و برای ادامه کار، از خانه دوباره به آن متصل شوید.
•
پس از قطع خط ارتباطی به دلیل نویز، می‌توانید بدون نیاز به شروع مجدد فرآیند از ابتدا، دوباره به آن بازگردید.
•
اگر مشکلی دارید که می‌خواهید آن را به فرد دیگری نشان دهید، می‌توانید سناریو را در ترمینال خود ایجاد کرده، ارتباط را قطع کنید، در راهرو قدم بزنید و در ترمینالی دیگر دوباره متصل شوید.
•
اگر در میانه یک بازی فوق‌العاده (یا هر چیز دیگری) هستید که امکان ذخیره‌سازی ندارد و شخص دیگری شما را از پای ترمینال کنار می‌زند، می‌توانید ارتباط را قطع کرده و بعداً دوباره متصل شوید.

هنگامی که بدون هیچ آرگومانی اجرا شود، Dislocate فرآیندهای قطع‌شده را به شما نشان می‌دهد و امکان اتصال مجدد به یکی از آن‌ها را فراهم می‌کند. در غیر این صورت، Dislocate برنامه نام‌برده‌شده را همراه با هرگونه آرگومان اجرا می‌کند.

به‌طور پیش‌فرض، ^] یک کاراکتر گریز (escape) است که به شما امکان تعامل با خودِ Dislocate را می‌دهد. در آن نقطه، می‌توانید ارتباط را قطع کنید (با فشردن ^D) یا Dislocate را معلق کنید (با فشردن ^Z).

هر دستور Tcl یا Expect نیز در این نقطه قابل قبول است. برای مثال، جهت درج محتوای فایل /etc/motd به گونه‌ای که گویی خودتان آن را تایپ کرده‌اید، بنویسید:

send -i $out [exec cat /etc/motd]

برای ارسال اعداد ۱ تا ۱۰۰ در پاسخ به اعلان "next #" بنویسید:

for {set i 0} {$i<100} {incr i} {
    expect -i $in "next #"
    send -i $out "$i\r"
}

همچنین می‌توان اسکریپت‌ها را آماده کرده و فراخوانی (source) نمود تا مجبور نباشید آن‌ها را به صورت بلادرنگ تایپ کنید.

Dislocate در واقع تنها یک اسکریپت ساده Expect است. با خیال راحت آن را طوری تغییر دهید که کار مورد نظرتان را انجام دهد یا صرفاً مستقیماً از Expect بدون واسطه Dislocate استفاده کنید. Dislocate چندین آرگومان ویژه را درک می‌کند. این‌ها باید قبل از نام برنامه قرار گیرند. هر کدام باید با فاصله (whitespace) جدا شوند. اگر خود آرگومان‌ها نیز آرگومان دریافت می‌کنند، آن‌ها نیز باید با فاصله جدا شوند.

گزینه -escape کاراکتر گریز را به مقدار بعدی تنظیم می‌کند. کاراکتر گریز پیش‌فرض ^] است.

این برنامه توسط نویسنده به عنوان یک تمرین نوشته شده است تا نشان دهد برقراری ارتباط با فرآیندهای قطع‌شده ساده است. قابلیت‌های بسیاری وجود دارند که می‌شد اضافه شوند، اما این هدف این برنامه نیست.

Tcl(3), libexpect(3)
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Associates, January 1995.

Don Libes, National Institute of Standards and Technology

7 October 1993