Bagaimana cara membunuh login pengguna yang tidak aktif di Solaris?

3

Pada server Solaris 10 jika saya melakukan w, saya mendapatkan ini:

12:26pm  up 85 day(s),  1:13,  6 users,  load average: 0.38, 0.36, 0.38
User     tty          login@  idle   JCPU   PCPU  what
blah     pts/1        3Aug15 2days  632:47 632:47  -bash
root     pts/2        4Sep15 6days  201:05  77:59  -bash
blah     pts/3        3Aug15 2days   72:40         -bash
blah     pts/6        13Jul1560days   3:24         -bash
root     pts/22       12:10pm                      bash
root     pts/23       12:17pm                      -bash

dan ketika saya melakukannya who -all, saya mengerti

   .       system boot  Jun 18 11:13
   .       run-level 3  Jun 18 11:14     3      0  S
LOGIN      console      Jul 12 13:54   .     4681
zsmon           .       Jun 18 11:15  old     404
LOGIN      console      Jun 18 11:15   .      876  id=  dt term=0   exit=1      (:0)
ostor    + pts/1        Aug  3 10:35  old   29213       ()
init.css        .       Jun 18 11:16  old    1331  id=  h1
root     + pts/2        Sep  4 08:32  old   13085       ()
ostor   + pts/3        Aug  3 10:41  old   29867       ()
roxa        pts/4        Sep  9 08:45  old    4082  id=ts/4 term=0   exit=0
roxa        pts/5        Sep  9 09:26  old    4369  id=ts/5 term=0   exit=0
ostor   + pts/6        Jul 13 07:45  old   26750       ()
roxa        pts/7        Sep  9 09:28  old    9010  id=ts/7 term=0   exit=0
roxa        pts/8        Sep  9 10:11  old    9242  id=ts/8 term=0   exit=0
roxa        pts/9        Sep  9 10:59  old   16138  id=ts/9 term=0   exit=0
roxa        pts/10       Sep  9 11:01  old   21040  id=s/10 term=0   exit=0
roxa        pts/11       Sep  9 11:02  old   21238  id=s/11 term=0   exit=0
roxa        pts/12       Sep  9 11:19  old   21514  id=s/12 term=0   exit=0
ostor     pts/13       Sep  9 14:29  old   14367  id=s/13 term=0   exit=0
ostor     pts/14       Sep  9 14:58  old   14548  id=s/14 term=0   exit=0
roxa        pts/15       Sep 10 08:28  old   13820  id=s/15 term=0   exit=0
roxa        pts/16       Sep 10 10:16  old   14340  id=s/16 term=0   exit=0
roxa        pts/17       Sep 10 08:40  old   15219  id=s/17 term=0   exit=0
roxa        pts/18       Sep 10 16:51 20:07  17179  id=s/18 term=0   exit=0
roxa        pts/19       Sep 10 16:59 19:58  18319  id=s/19 term=0   exit=0
roxa        pts/20       Sep 11 08:59  3:54   2313  id=s/20 term=0   exit=0
roxa        pts/21       Sep 11 11:20  1:32  20981  id=s/21 term=0   exit=0
root     + pts/22       Sep 11 12:10   .    28241       ()
roxa        pts/23       Sep 11 12:49  0:10   2623  id=s/23 term=0   exit=0
roxa        pts/24       Sep 11 12:24  0:29    226  id=s/24 term=0   exit=0

Bagaimana cara saya membunuh semua proses untuk pengguna roxa yang tidak aktif?

jasmaar
sumber
Apakah ada proses nyasar oleh pengguna roxa ini yang ingin Anda bunuh? ps -U roxa
Jeff Schaller
@ JeffSchaller Pengguna roxa mencoba ssh dari server lain tetapi koneksi mereka hang. Sebelum waktu habis mereka membunuh sesi dempul meninggalkan login tidak aktif di atas. Saya mencoba untuk mematikan sesi menggunakan ID di sana tetapi saya mendapatkan pesan tidak ada proses seperti itu.
jasmaar
jadi, mungkin mereka memiliki proses sshd tersesat yang tersisa? mereka akan dimiliki oleh root, jadi sesuatu seperti ps -ef | grep sshdakan membuat Anda lebih dekat.
Jeff Schaller

Jawaban:

0

Jika Anda hanya membunuh sshds-nya, mungkin akan ada proses yang tersisa yang dapat selamat dari kehancuran terminal virtual mereka.

Jika Anda menginginkan cara yang bersih, Anda dapat membunuh semua prosesnya dengan singleline berikut:

for i in `ps uxa|grep ^roxa|sed 's/\+//g'|awk '{print $2}'`;do kill -9 $i;done

Inti dari skrip singleline ini adalah di antara ``, di mana sebuah pipa yang tidak terlalu rumit memproses ps uxaoutput Anda , dan mengekstrak pids-nya.

peterh
sumber
@oztalha Terima kasih banyak perbaikannya! Namun, komentar seperti ini milik di sini, di bagian "komentar". Di bawah 50 poin reputasi Anda tidak dapat membuat komentar, jadi sangat disarankan untuk mendapatkan 50 poin ASAP ini.
peterh
(@oztalha ekstensi teks dikonversi menjadi komentar): "Catatan: Saya membuat dua perbaikan untuk jawaban asli: (1) pid adalah kolom ke-2, diubah $ 7 menjadi $ 2; (2) juga menambahkan tanda centang penutupan kembali yang hilang (di mana perintah awk berakhir) "
peterh