linux执行命令远程断开恢复
-
要远程断开并恢复一个正在执行的 Linux 命令,你可以使用 screen 或 nohup 命令来实现。下面是两种方法的详细步骤:
方法一:使用 screen 命令
1. 首先,在终端中输入以下命令,安装 screen:
“`shell
sudo apt-get install screen
“`2. 执行你想要在远程服务器上保持运行的命令,比如:
“`shell
command
“`3. 按下 Ctrl+A,然后按下 D 键,这将分离当前 screen 会话并返回到终端。
4. 当你需要恢复会话时,可以使用以下命令:
“`shell
screen -r
“`这将使你重新连接到之前分离的 screen 会话,并继续执行命令。
方法二:使用 nohup 命令
1. 执行你想要在远程服务器上保持运行的命令,使用以下格式:
“`shell
nohup command &
“`这将使命令在后台运行,并将输出重定向到 nohup.out 文件。
2. 当你需要恢复会话时,只需使用以下命令:
“`shell
tail -f nohup.out
“`这将显示命令的输出,你可以实时查看命令执行情况。
以上两种方法中,你可以选择适合你需求的方法来远程断开并恢复一个 Linux 命令的执行。无论是使用 screen 还是 nohup,都能够保证你的命令在断开连接后继续运行,并在需要时重新连接到会话。
2年前 -
在Linux中,我们可以使用SSH(Secure Shell)来远程连接服务器并执行命令。SSH是一种加密的网络协议,它可以在客户端和服务器之间提供安全的远程登录功能。在使用SSH远程登录服务器后,如果连接意外断开,我们可以采取以下方法来恢复连接并继续执行命令。
1. 使用tmux或screen工具:tmux和screen是两个非常常用的终端复用工具,它们可以在一个物理终端上运行多个虚拟终端,并在终端断开后保持会话的状态。通过在连接服务器后使用tmux或screen命令打开一个会话,即使SSH连接断开,我们可以重新连接到服务器并恢复会话,继续执行命令。
2. 使用nohup命令:如果我们想在后台运行一个长时间运行的命令,并且即使SSH连接断开也要保持命令的运行,我们可以使用nohup命令。例如,我们可以使用以下命令运行一个Python脚本:
“`
nohup python my_script.py &
“`
这样,即使SSH连接断开,my_script.py也会继续在后台运行。3. 使用disown命令:如果我们已经在SSH连接中运行了一个命令,并且忘记了使用nohup命令,我们可以使用disown命令将其与终端分离。通过运行命令后,我们可以使用以下命令来分离它:
“`
ctrl+z //暂停进程
bg //将进程放入后台运行
disown -h %1 //将进程与终端分离,其中%1是进程号
“`
这样,即使SSH连接断开,该命令也将继续在后台运行。4. 使用SSH KeepAlive功能:SSH客户端和服务器默认情况下会在一段时间内维持连接,如果该时间间隔内没有活动,连接将断开。我们可以在SSH配置文件中设置KeepAlive功能来保持连接的活动状态。在客户端的`/etc/ssh/ssh_config`文件中添加以下行:
“`
ServerAliveInterval 60
“`
这样,SSH客户端将每隔60秒向服务器发送一个保持活动的请求,从而避免连接在不活动期间断开。5. 使用终端多路复用工具(如mosh):mosh是一种替代SSH的终端多路复用工具,它可以更好地处理连接不稳定的情况。与SSH不同的是,mosh在连接中断后可以自动恢复连接,并且对于网络延迟和信号丢失拥有更好的容错性。通过在本地安装mosh客户端,并在服务器上安装mosh服务器端,我们可以使用mosh命令连接服务器并执行命令。
无论我们选择哪种方法,都可以保证在SSH连接断开后能够恢复连接并继续执行命令。
2年前 -
在Linux中,可以使用SSH(Secure Shell)远程访问其他计算机,并在远程计算机上执行命令。在远程断开连接后,有几种方法可以恢复执行的命令。下面是具体的操作流程:
1. 使用SSH连接到远程计算机:
使用以下命令连接到远程计算机:
“`
ssh username@remote_host
“`其中,`username`是您在远程计算机上的用户名,`remote_host`是远程计算机的IP地址或主机名。
2. 在远程计算机上执行命令:
一旦连接到远程计算机,您可以在终端上执行命令。例如,您可以运行以下命令来查看远程计算机上的文件列表:
“`
ls
“`或者,您可以运行其他任意的命令。
3. 恢复断开的连接:
如果远程连接不再可用,断开了连接,您可以使用以下方法来恢复执行的命令:
– 使用`screen`命令:
`screen`是一个终端多路复用程序,它允许您在一个会话中打开多个终端窗口。您可以使用`screen`命令打开一个会话,执行命令,然后在需要时分离该会话。
首先,安装`screen`工具,使用以下命令:
“`
sudo apt-get install screen
“`然后,在远程计算机上运行`screen`命令:
“`
screen
“`这将打开一个新的终端窗口。现在,您可以在该窗口中执行您的命令。
如果您的SSH连接断开了,您可以重新连接到远程计算机,并使用以下命令恢复之前的`screen`会话:
“`
screen -r
“`这将重新连接到之前的`screen`会话,并恢复您之前在断开连接前执行的命令。
– 使用`nohup`命令:
`nohup`命令允许您在后台运行进程,即使连接断开也可以继续运行。
在远程计算机上,使用以下命令运行您的命令:
“`
nohup command &
“`其中,`command`是您要运行的命令。
例如,要运行一个长时间运行的命令`my_command`,可以使用以下命令:
“`
nohup my_command &
“`这将在后台运行`my_command`,即使远程连接断开,也将继续运行。
– 使用`tmux`命令(如果安装了tmux):
类似于`screen`,`tmux`也是一个终端多路复用程序,它允许您在一个会话中打开多个终端窗口。使用以下命令安装和运行`tmux`:
“`
sudo apt-get install tmux
tmux
“`这将打开一个新的`tmux`会话。您可以在该会话中执行您的命令。
如果您的SSH连接断开了,您可以重新连接到远程计算机,并使用以下命令恢复之前的`tmux`会话:
“`
tmux attach
“`这将重新连接到之前的`tmux`会话,并恢复您之前在断开连接前执行的命令。
使用这些方法之一,您可以在远程连接断开后恢复执行的命令。
2年前