轉載自:http://www.361way.com/pkill-tty/6033.html
Linux下可以通過w命令或who命令查看當前登錄的所有主機的pts信息,而非正常退出時,有時候pts並不會釋放,這就會佔用/dev/tty資源。如何將這種非正常退出的進程kill掉呢?當然,我們可以通過ps auxf指令進行查看,再獲取相應的進程信息後,再kill掉進程。同樣也可以也可以使用pkill直接進行查殺。
查看當前的pts佔用情況:
[root@localhost ~]# w 14:21:27 up 71 days, 3:54, 2 users, load average: 0.64, 0.39, 0.35USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 127.0.0.1 14:21 7.00s 0.16s 0.04s wroot pts/4 127.0.0.1 14:21 3.00s 0.12s 0.12s -bash
除了使用ps auxf進行詳細的查看外,還可以使用如下命令查看其對的pid值:
[root@localhost ~]# ps -t tty1 PID TTY TIME CMD 2363 tty1 00:01:05 X[root@localhost ~]# ps -t /dev/tty1 PID TTY TIME CMD 2363 tty1 00:01:05 X
查到對應的pid後,直接kill -9 pid就可以結束該進程了。不過除此之外,我們還可以使用pkil指令進行比較快速的殺tty,踢用戶:
[root@redhat ~]# pkill -t tty1 #殺死終端1下的所有進程[root@Centos ~]# pkill -kill -t pts/2 #踢用戶[root@redhat ~]# pkill -9 6985 #徹底殺死進程[root@redhat ~]# pkill -u tank #殺死指定用戶的所有進程[root@redhat ~]# pkill -vu root #殺死不屬於root用戶的所有進程