ssh远程服务器断开后如何运行

不及物动词 其他 276

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    当SSH远程服务器断开连接后,服务器上正在运行的进程将会停止。为了使服务器上的进程继续运行,可以使用以下方法:

    1. 使用nohup命令:nohup命令用于在后台运行命令,并将输出重定向到指定文件。使用nohup命令可以确保即使SSH连接断开,进程仍然会继续在服务器上运行。

    例如,要在服务器上运行一个名为"my_script.sh"的脚本,可以使用以下命令:

    nohup ./my_script.sh &
    

    该命令会将脚本运行在后台,并将输出保存到"nohup.out"文件中。可以使用命令“tail -f nohup.out”来查看实时输出。

    1. 使用tmux或screen:tmux和screen是两个终端复用工具,它们允许在服务器上创建多个终端会话,并且在SSH连接断开后,会话仍然会保持活动状态。

    安装tmux或screen后,可以使用以下命令创建一个会话:

    tmux new-session -s my_session
    

    或者

    screen -S my_session
    

    然后,在该会话中启动你的进程。即使SSH连接断开,你可以重新连接到服务器,并恢复到刚才的会话,进而查看进程状态或继续操作。

    1. 使用后台运行符号"&":在运行命令时,在命令的末尾加上"&"符号可以使命令在后台运行。

    例如:

    ./my_script.sh &
    

    这样,即使SSH连接断开,命令仍然会在服务器上继续运行。

    需要注意的是,当使用以上方法时,需要确保你的进程在后台运行时没有任何交互式命令或需要终端输入的操作,否则可能会导致进程异常退出。

    通过上述方法,你可以确保即使SSH连接断开,服务器上的进程仍然会继续运行,而不会因为连接中断而停止。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论
    1. 使用nohup命令:nohup是Unix/Linux系统中的一个内置命令,它可以在后台运行给定的命令,即使终端会话断开也能保持运行。可以通过以下命令运行一个命令或程序,并将输出写入nohup.out文件:
    nohup command &
    

    其中,command为需要运行的命令或程序。

    1. 使用screen命令:screen是一个终端多路复用程序,可以在单个终端窗口中运行多个命令和程序。当ssh连接断开后,可以通过重新连接服务器并使用以下命令恢复之前的会话:
    screen -r SessionID
    

    其中,SessionID是之前的会话ID。如果没有指定SessionID,则会恢复最近的会话。

    1. 使用tmux命令:tmux是一个终端复用程序,类似于screen。它允许用户在单个终端窗口中运行多个终端会话。当ssh连接断开后,可以通过重新连接服务器并使用以下命令恢复之前的会话:
    tmux attach -t SessionID
    

    其中,SessionID是之前的会话ID。如果没有指定SessionID,则会恢复最近的会话。

    1. 使用disown命令:disown命令可以将当前终端会话中的任务从终端会话中分离,使其在后台运行,并且不受终端会话的影响。可以通过以下命令运行一个命令或程序,并将其从终端会话中分离:
    command & disown
    

    其中,command为需要运行的命令或程序。

    1. 使用运行管理器(如systemd):某些Linux发行版使用systemd来管理系统中的服务。可以通过创建一个systemd服务单元文件,并将相关命令或程序定义在其中。然后,使用以下命令启动该服务:
    systemctl start servicename
    

    其中,servicename为服务单元文件中定义的服务名称。这样,无论是否存在ssh连接,该服务都会在后台持续运行。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    当 SSH 连接断开后,服务器上正在运行的进程将会被中断。如果你需要在 SSH 连接断开的情况下继续运行进程,有以下几种方法可以实现:

    1. 使用 nohup 命令:nohup 命令可以在后台运行命令,并且会忽略 SIGHUP 信号(终端断开信号)。这意味着即使 SSH 连接断开,该命令也会继续运行。

      使用方法:在要运行的命令前面加上 nohup,然后在命令末尾添加一个 &,表示以后台模式运行。示例:nohup 命令 &

      例如,要在服务器上运行一个叫做 myscript.sh 的脚本文件,并且在断开 SSH 连接后继续运行,你可以使用以下命令:

      nohup ./myscript.sh &
      

      nohup 命令会将所有的输出信息重定向到一个名为 nohup.out 的文件中。你可以使用 tail 命令来查看这个文件的内容:

      tail -f nohup.out
      
    2. 使用 screen 命令:screen 是一个终端复用工具,它允许你在单个 SSH 会话中运行多个终端窗口或会话。即使 SSH 连接断开,screen 会话仍然会保持并继续运行。

      使用方法:打开一个 screen 会话,运行你的命令,然后断开 SSH 连接。在重新连接到服务器时,可以恢复到之前的 screen 会话中,并继续操作。

      • 打开一个 screen 会话,运行命令:

        screen
        ./myscript.sh
        
      • 按下 Ctrl + A,然后按下 Ctrl + D,断开 SSH 连接。

      • 重新连接到服务器:

        screen -r
        

        这将会恢复到之前的 screen 会话中,你可以继续操作。

    3. 使用 tmux 命令:tmux 是一个功能强大的终端复用工具,类似于 screen。它也可以在 SSH 连接断开的情况下继续运行会话。

      使用方法:打开一个 tmux 会话,运行你的命令,然后断开 SSH 连接。在重新连接到服务器时,可以恢复到之前的 tmux 会话中,并继续操作。

      • 打开一个 tmux 会话,运行命令:

        tmux new-session -s mysession
        ./myscript.sh
        
      • 按下 Ctrl + B,然后按下 D,断开 SSH 连接。

      • 重新连接到服务器:

        tmux attach-session -t mysession
        

        这将会恢复到之前的 tmux 会话中,你可以继续操作。

    请注意,无论使用哪种方法,断开 SSH 连接后,你都可以通过重新连接到服务器来查看已运行进程的输出。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部