۱۳۹۴ آذر ۱۲, پنجشنبه

بستن یک ترمینال غیر فعال در لینوکس

بعضی اوقات یک ترمینال که باز هست و کاری با آن انجام میدهیم (مثلا به کامپیوتر دیگری ssh میکنیم)، قفل می شود و غیر فعال می شود. این غیر فعال شدن را نمیتوان الزاما با بستن گرافیکی ترمینال از بین برد. بعضی اوقات پیش می آید که ترمینال را می بندیم ولی ارتباط ssh ای که با آن وصل بودیم هنوز قطع نشده است. 

برای این راهی هست که کلا آن ترمینال را kill کنیم تا کلا همه فعالیتهای آن بسته شود.

ابتدا باید ببینید که چه ترمینالی یا چه ارتباطی را می خواهید ببندید. برای آن از دستور "w" می توانید استفاده کنید. لیست pts ها را می دهد. مثلا:
$ w                                                                                                                                                             USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
smvaez   :0           :0                         11:41    ?xdm?   15:11   0.37s  init --user
smvaez   pts/6      :0                         12:13    2.00s      0.04s    0.00s  w
smvaez   pts/11    :0                         11:41    44:31     0.00s    2.61s  kdeinit4: kded4 [kdeinit]                 smvaez   pts/12    :0                         12:28    2.00s     0.02s  0.02s bash
     
سپس شما بر اساس زمان تماس و یا هر نشانه دیگری تصمیم می گیرید که آن ترمینال را از بین ببرید. اول باید PID مربوط به آن ترمینال را پیدا کنید. مثلا در مورد بالا، برای pts/6 و pts/11، از دستور زیر استفاده میکنیم:
$ ps -ft pts/6 -t pts/12
که لیست زیر حاصل می شود:
UID        PID  PPID  C STIME TTY          TIME CMD
smvaez    6134  2373  0 12:13 pts/6    00:00:00 /bin/bash
smvaez    7516  7514  0 12:28 pts/12   00:00:00 bash
سپس مثلا pts/6 را از بین می بریم:
$ kill 6134


مرجع نمونه:

هیچ نظری موجود نیست: