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

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

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

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

2023-12-13 18:21未知服务器之家 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)

原文来自:


延伸 · 阅读

精彩推荐
  • LinuxLinux中的Zypper命令使用示例

    Linux中的Zypper命令使用示例

    这篇文章主要介绍了Linux中的Zypper命令使用,用来进行对zypper仓库的各种操作,需要的朋友可以参考下 ...

    开源中文社区7322019-09-23
  • Linux运维老鸟谈生产场景对linux系统进行分区的方法

    运维老鸟谈生产场景对linux系统进行分区的方法

    一些朋友还不知道生产场景如何对linux系统进行分区?今天小编为大家带来的是运维老鸟谈生产场景对linux系统进行分区的方法;有需要的朋友可以过来看看...

    网络5112019-06-10
  • Linux简单实现linux聊天室程序

    简单实现linux聊天室程序

    这篇文章主要介绍了简单实现linux聊天室程序的详细代码,帮助大家了解聊天室的实现原理,感兴趣的小伙伴们可以参考一下...

    Linux教程网7422021-10-29
  • Linux一文搞定 Linux 设备树

    一文搞定 Linux 设备树

    在Linux 2.6中, ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx中,采用设备树后,许多硬件的细节可以直接通过它传递给Linux,而不再...

    Linux学习10852021-10-25
  • LinuxLinux中文件执行中的锁定怪现象解释

    Linux中文件执行中的锁定怪现象解释

    linux下,一个可执行文件exe1正在执行中,rm –f可以将其删除,mv可以将其移除,mv $other exe1也可以将其替换,但是cp $other exe1则显示文件忙,求解 ...

    Linux教程网3352019-12-02
  • Linux如何在 GitLab 执行器中使用 Podman

    如何在 GitLab 执行器中使用 Podman

    GitLab执行器Runner是一个与 GitLab CI/CD 配合使用的应用,可在 GitLab 基础设施上的流水线中运行作业。它们通常用于在提交代码后自动编译应用或在代码库上运...

    未知1572023-08-24
  • Linux在 Linux 上使用 Tealdeer 替代手册页

    在 Linux 上使用 Tealdeer 替代手册页

    手册页是我开始探索 Linux 时最常用的资源。当然,对于初学者熟悉命令行指令而言,man 是最频繁使用的指令。但是手册页中有大量的选项和参数列表,很...

    Linux中国7172021-07-12
  • Linuxlinux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法

    linux系统更新正在运行进程的可执行文件需要注意的text file bus

    这篇文章主要介绍了linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方案,需要的朋友可以参考下 ...

    snooda6612019-11-15