Rumah > Artikel > Tutorial sistem > Bagaimana untuk menamatkan sesi SSH yang tidak digunakan atau terbiar
Pengenalan | Bagaimana untuk menutup sesi ssh yang tidak aktif? Mula-mula gunakan arahan w untuk mengenal pasti sesi ssh yang tidak aktif atau terbiar, kemudian gunakan arahan pstree untuk mendapatkan PID sesi terbiar, dan akhirnya gunakan perintah bunuh untuk menutup sesi. |
Mari kita anggap bahawa apabila anda bekerja pada pelayan melalui ssh, sambungan sesi anda terputus kerana rangkaian, kuasa atau PC tempatan dimulakan semula.
Anda mungkin atau mungkin tidak log masuk ke pelayan sekali lagi untuk meneruskan kerja, tetapi anda akan sentiasa ditinggalkan dengan sesi ssh yang tidak ditutup sebelum ini.
Bagaimana untuk menutup sesi ssh yang tidak aktif? Mula-mula gunakan arahan w untuk mengenal pasti sesi ssh yang tidak aktif atau terbiar, kemudian gunakan arahan pstree untuk mendapatkan PID sesi terbiar, dan akhirnya gunakan arahan bunuh untuk menutup sesi.
Bacaan yang disyorkan: Mosh (Mobile Shell) - Alternatif sambungan jauh SSH terbaik
Cara mengenal pasti sesi SSH yang tidak aktif atau terbiarLog masuk ke sistem dan gunakan arahan w untuk menyemak bilangan pengguna yang sedang log masuk. Sebaik sahaja anda telah mengenal pasti sambungan sesi anda, anda boleh ambil perhatian sesi ssh tidak aktif atau terbiar lain untuk ditutup.
Dalam contoh semasa saya, saya dapat melihat dua pengguna log masuk, salah satunya ialah sesi ssh di mana saya sedang melaksanakan arahan w dan satu lagi ialah sesi terbiar sebelumnya.
# w 10:36:39 up 26 days, 20:29, 2 users, load average: 0.00, 0.02, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 219.91.219.14 10:34 28.00s 0.00s 0.00s -bash root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s wBagaimana untuk mendapatkan PID sesi SSH
Untuk menutup sesi ssh terbiar, kami memerlukan PID proses induk proses sesi terbiar. Kita boleh melaksanakan perintah pstree untuk melihat rajah pokok termasuk semua proses untuk mendapatkan pid proses induk.
Anda akan mendapat output yang serupa dengan contoh di bawah. Output arahan pstree akan lebih daripada ini, dan saya telah memadamkan banyak kandungan yang tidak berkaitan untuk pemahaman yang lebih baik.
# pstree -p init(1)-+-abrtd(2131) |-acpid(1958) |-httpd(32413)-+-httpd(32442) | |-mingetty(2198) |-mysqld_safe(24298)---mysqld(24376)-+-{mysqld}(24378) | |-php(32456)-+-php(32457) | |-sshd(2023)-+-sshd(10132)---bash(10136) | `-sshd(10199)---bash(10208)---pstree(10226) |-udevd(774)-+-udevd(2191) `-udevd(27282)
Daripada output di atas, anda boleh melihat rajah pokok proses sshd dan cawangan. Proses utama sshd ialah sshd(2023), dan dua lagi cawangan ialah sshd(10132) dan sshd(10199).
Sama seperti yang saya katakan pada permulaan artikel, salah satunya ialah sambungan sesi baru saya sshd(10199) yang menunjukkan arahan pstree yang saya laksanakan, jadi sesi terbiar adalah proses lain seperti sshd(10132).
Bacaan yang disyorkan: Cara mengakses pelayan Secure Shell (SSH) melalui pelayar web standard
Bacaan yang disyorkan: PSSH - Laksanakan arahan secara selari pada berbilang pelayan Linux
Kami telah mendapat semua maklumat tentang sesi terbiar. Jadi, mari kita gunakan perintah bunuh untuk menutup sesi terbiar. Sila pastikan anda menggantikan PID di bawah dengan PID sesi melahu pada pelayan anda.
# kill -9 10132
(Terjemahan LCTT: Berikut ialah alat lain pkill. Gunakan pkill -t pts/0 -kill untuk menutup sesi. Ia tersedia di bawah debian 8. Beberapa versi nampaknya perlu menukar kedudukan -kill)
Semak semula sama ada sesi terbiar telah ditutupGunakan arahan w sekali lagi untuk melihat sama ada sesi terbiar telah ditutup. Betul, hanya sesi semasa saya masih ada, jadi sesi terbiar telah ditutup.
# w 10:40:18 up 26 days, 20:33, 1 user, load average: 0.11, 0.04, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s w
Bacaan yang disyorkan: rtop - alat berguna untuk memantau pelayan jauh melalui SSH
Bacaan yang disyorkan: DSH - Laksanakan arahan pada berbilang pelayan Linux serentak
Semak semula menggunakan arahan pstreeGunakan arahan pstree sekali lagi untuk mengesahkan. Ya, hanya sesi ssh saya sendiri yang masih ada.
# pstree -p init(1)-+-abrtd(2131) |-acpid(1958) | |-httpd(32413)-+-httpd(32442) | |-mingetty(2198) |-mysqld_safe(24298)---mysqld(24376)-+-{mysqld}(24378) | |-php(32456)-+-php(32457) | |-sshd(2023)---sshd(10199)---bash(10208)---pstree(10431) |-udevd(774)-+-udevd(2191) `-udevd(27282)
Atas ialah kandungan terperinci Bagaimana untuk menamatkan sesi SSH yang tidak digunakan atau terbiar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!