linux执行命令远程断开恢复

worktile 其他 176

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要远程断开并恢复一个正在执行的 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年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在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年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在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年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部