当前位置: 首页 > 科技观察

如何在断开连接后保持远程SSH会话运行

时间:2023-03-18 18:47:09 科技观察

SSH(SecureShell)是一个端到端的加密网络系统,允许用户从客户端远程访问服务器。但有时SSH远程访问可能会由于不活动或网络信号差而断开连接。不管是什么原因,在断开连接后保持SSH会话和进程运行是Linux管理员的一项重要工作。本文讨论如何在断开连接后保持SSH会话运行。1.screenscreen命令是SSH管理最常用、最有用的命令。对于Ubuntu:$sudoaptinstallscreen对于OpenSUSE:$sudozypperinstallscreen对于ArchLinux:$sudopacman-Sscreen对于RedHatEnterpriseLinux:$sudoyuminstallscreen获得访问权限后,通过SSH连接到服务器。如果你打算在你的工作站上做长时间的夜间工作,但又不想你的SSH客户端宕机,你可以使用screen命令。这可以分离您的屏幕会话。要分离屏幕,请按Ctrl-A,然后按Ctrl-D以从键盘分离。您可以随时从终端登录以监控作业进度。要使用会话重新连接或连接现有会话,请使用以下命令:$screen-rscreen-D-r2.tmuxtmux或终端多路复用器是程序员和系统管理员非常流行且有用的工具,它允许用户切换同一终端中的程序之间。保持SSH会话在后台运行tmux是一个非常快速的解决方案。它可以从后台运行的应用程序中分离和重新附加进程。对于ArchLinux:$sudopacman-Stmux对于RedHatEnterpriseLinux:$sudoyuminstalltmux对于Ubuntu:$sudoapt-getinstalltmux对于OpenSUSE:$sudozypperinstalltmux安装tmux后,使用终端启动tmux会话命令。安装不需要太多时间。完成安装后,您现在可以开始使用tmux。要启动tmux,只需在终端中输入tmux:$tmux如果您需要运行多个终端多路复用器以保持所有SSH会话在后台运行,在这种情况下,您可能会在tmux中找到tmux。是从一种形式切换到另一种形式的命令行:$tmuxdetach$tmuxattach$tmuxattach-t2查看所有tmux屏幕,使用tmuxlist命令:$tmuxls3.byobubyobu工具主要用于LinuxRemoteSSH管理和屏幕监控。它是一个开源软件,可以与tmux或屏幕工具一起使用。byobu您可以使用此工具查看当前状态、通知和消息。虽然byobu默认是随Ubuntu一起安装的。但如果没有,您可以将它安装在您的Linux机器上。通过检查byobu的其他版本来检查你的系统中是否安装了byobu:$tmuxls然后启用byobu,这将有助于在断开连接后保持SSH会话在后台运行:$byobu-enable$byobu-enable对于Ubuntu:$sudoapt安装byobu对于OpenSUSE:$sudozypperaddrepohttps://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo$sudozypperrefresh$sudozypperinstallbyobu对于ArchLinux:$yaourt-Sbyobu$packer-Sbyobu对于RedHatEnterpriseLinux:$sudoyuminstallbyobu对于Fedora:$sudodnfinstallbyobu要开始使用byobu,只需在终端中输入byobu并按回车键:$byobu现在,如果您使用tmux或screen,您可以选择在它们中的任何一个之间进行后端协作:$byobu-select-backend现在您可以使用系统键盘功能键来管理并在断开运行后将SSH会话保留在后台。要断开SSH会话,请按F6。.要分离SSH会话并仍保持连接,请按SHIFT+F6。要仅保持当前屏幕会话处于活动状态并关闭所有其他窗口,请按ALT+F6。4.nohupnohupornohangup命令是screen或tmux的一个非常有用的替代品。它还允许用户在断开连接后保持SSH会话运行。此命令通过避免信号挂断(SIGHUP)nohup告诉系统在后台运行所有进程。要检查nohupLinux终端的手册和选项,请在终端中键入以下命令并按Enter:,它是为了避免连接丢失并在断开连接后保持会话运行,请使用nohup命令行。您还可以使用cat命令和nohup命令在文本文件中获取作业的输出列表:$n$nohup./hello.sh$catnohup.out.out5。disown如果您的系统没有root权限,也许这会解决您的问题。disown命令可以使任何任务从正在运行的系统日志中取消列出。因此,它可以隐藏正在进行的进程以避免所有自动注销错误或信号挂断(SIGHUP)。您实际上可以通过使用diswon进程管理命令隐藏任务来保持SSH会话运行。要从任务管理器中删除或隐藏您的任务,请在终端中使用diswon命令:$disown要检查任务的当前状态,请使用currentshell命令:$currentshell您也可以一次性执行此操作行终端命令设置作业列表:$disownjobs1$disownjobs1jobs2...jobsn要检查作业列表,请使用-l命令:$jobs-l要从窗口中删除所有当前作业,请键入-adisown语法:$disown-a要从窗口中仅删除一个或正在运行的作业,请使用-rdiswon语法:$disown-r对于SSH,要在会话连接后在后台运行作业,请使用-h语法。此过程即使在断开连接后也能使您的SSH会话保持运行:$disown-hjobID$disown-h%2总结对于系统管理员来说,保持SSH会话和进程运行是为了满足客户和完成关键任务的工作。断开连接和频繁丢失会话非常烦人和烦人。因此在本文中,讨论了SSH会话断开的可能原因,并描述了在断开连接后如何保持SSH会话运行的所有可能方法。