服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 教你关闭一个不活动的或者空闲的SSH会话

教你关闭一个不活动的或者空闲的SSH会话

2023-11-27 18:25未知服务器之家 Linux

导读 如何关闭一个不活动的 ssh 会话?首先使用 w来识别出不活动或者是空闲的 ssh 会话,接着使用 pstree来获取空闲会话的 PID,最后就是使用 kill 命令来关闭会话了。 让我们来假设一下,当你通过 ssh 在服务器上工作时,由于网络、

导读 如何关闭一个不活动的 ssh 会话?首先使用 w 来识别出不活动或者是空闲的 ssh 会话,接着使用 pstree 来获取空闲会话的 PID,最后就是使用 kill 命令来关闭会话了。

教你关闭一个不活动的或者空闲的SSH会话
让我们来假设一下,当你通过 ssh 在服务器上工作时,由于网络、电源或者是本地 PC 重启等原因会导致你的会话连接断开。

你可能会再次登录服务器继续工作也可能不会,但是你始终会留下之前没有关闭的 ssh 会话。

如何关闭一个不活动的 ssh 会话?首先使用 w 命令来识别出不活动或者是空闲的 ssh 会话,接着使用 pstree 命令来获取空闲会话的 PID,最后就是使用 kill 命令来关闭会话了。

建议阅读:Mosh(Mobile )- 最好的SSH 远程连接替代选项

如何识别不活动的或者是空闲的 SSH 会话

登录系统通过 w 命令来查看当前有多少用户登录着。如果你识别出了自己的会话连接就可以记下其它不活动或者是空闲的 ssh 会话去关闭。
在我当前的例子中,能看见两个用户登录着,其中一个是我当前在执行 w 命令的 ssh 会话另一个就是之前的空闲会话了。

#w
10:36:39up26days,20:29,2users,loadaverage:0.00,0.02,0.00
USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT
rootpts/0219.91.219.1410:3428.00s0.00s0.00s-bash
rootpts/2219.91.219.1410:360.00s0.00s0.00sw
如何获取 SSH 会话的 PID

为了关闭空闲的 ssh 会话,我们需要空闲会话进程的父进程的 PID。我们可以执行 pstree 命令来查看包括了所有进程的树状图,以便获取父进程的 pid。
你会获得与下方示例中相似的输出。pstree 命令的输出会比这个多得多,为了更好的理解我删去了许多不相关的内容。

#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)

从上方的输出中,你可以看到 sshd 进程与分支的树形图。sshd 的主进程是 sshd(2023),另两个分支分别为 sshd(10132) 和 sshd(10199)。

跟我在文章开始讲的相同,其中一个是我新的会话连接 sshd(10199) 它展示了我正在执行的 pstree 命令,因此空闲会话是另一个进程为 sshd(10132)。

建议阅读:如何通过标准的网页浏览器来接入 Secure Shell (SSH) 服务器
建议阅读:PSSH - 在多台 服务器上并行的执行命令

如何关闭空闲 SSH 会话

我们已经获得了有关空闲会话的所有信息。那么,就让我们来使用 kill 命令来关闭空闲会话。请确认你将下方的 PID 替换成了你服务器上的空闲会话 PID。

#kill-910132

(LCTT 译注:这里介绍另一个工具 pkill,使用 pkill -t pts/0 -kill 就可以关闭会话, debian 8 下可用,有些版本似乎需要更改 -kill 的位置)

再次查看空闲会话是否已经被关闭

再次使用 w 命令来查看空闲会话是否已经被关闭。没错,只有那个我自己的当前会话还在,因此那个空闲会话已经被关闭了。

#w
10:40:18up26days,20:33,1user,loadaverage:0.11,0.04,0.01
USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT
rootpts/2219.91.219.1410:360.00s0.00s0.00sw

建议阅读:rtop - 一个好用的通过 SSH 来监控远程服务器的工具

建议阅读:DSH - 同时在多台 Linux 服务器上执行命令

再次使用 pstree 命令检查

再次使用 pstree 命令确认。是的,只有那个我自己的 ssh 会话还在。

#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)

原文来自:


延伸 · 阅读

精彩推荐
  • Linux哞~ 我的 Linux 终端里有头牛

    哞~ 我的 Linux 终端里有头牛

    如果你想的话,Linux 终端可以是一个有趣的地方。 当然,终端一般用在严肃的场合,但你可以使用有趣的 Linux 命令来娱乐自己。 cowsay 就是其中之一。它可...

    未知1112023-06-29
  • Linux使用find命令查找Linux中的隐藏文件的方法

    使用find命令查找Linux中的隐藏文件的方法

    这篇文章主要介绍了使用find命令查找Linux中的隐藏文件的方法,包括只列出被隐藏的文件等操作,需要的朋友可以参考下 ...

    大步's blog10592019-09-18
  • Linux做好自动化运维平台必备技能

    做好自动化运维平台必备技能

    万丈高楼平地起,高楼稳不稳取决于地基是否扎实。基础数据便是运维管理这座高楼的地基。 首先介绍一下我们在运维管理中所涉及到的基础数据有哪一些...

    未知612023-09-12
  • Linux从五方面解析Linux防火墙框架问题

    从五方面解析Linux防火墙框架问题

    Linux系统中的Netfilter提供了一个抽象、通用化的框架,该框架定义的一个子功能的实现就是包过滤子系统 ...

    Linux教程网4802020-01-05
  • LinuxLinux系统用户管理之/etc/group组文件详解

    Linux系统用户管理之/etc/group组文件详解

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件。linux /etc/group文件是有关于系统管理员对用户和用户组...

    Linux教程网12482019-11-16
  • LinuxLinux中使用grep命令搜索文件名及文件内容的方法

    Linux中使用grep命令搜索文件名及文件内容的方法

    这篇文章主要介绍了Linux中使用grep命令搜索文件名及文件内容的方法,同时文中还介绍了将匹配结果高亮显示的方法,相当实用,需要的朋友可以参考下...

    开源中文社区18682019-06-21
  • Linux用 Linux 的 watch 命令观察命令和任务

    用 Linux 的 watch 命令观察命令和任务

    了解 watch 命令如何让你知道任务已完成或命令已执行。watch 命令对于许多临时性的系统管理任务非常有用,在这些任务中,你需要在没有进度条的情况下等...

    Linux中国8362021-09-22
  • Linuxlinux sudo命令详解

    linux sudo命令详解

    本篇文章主要介绍了linux sudo命令,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。...

    sparkdev12452021-12-21