linux退出ssh命令还会继续执行吗

worktile 其他 309

回复

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

    Linux退出SSH命令后,已经在远程服务器上运行的程序将继续执行。SSH是一种远程登录协议,用于在本地计算机与远程服务器之间建立安全的连接。当你通过SSH登录到远程服务器并执行某个命令后,该命令将在服务器上运行,即使你退出了SSH连接,命令仍然会继续执行。

    这种行为是因为SSH的工作方式。当你登录到远程服务器时,SSH会为你分配一个会话(Session),该会话与你的SSH连接相关联。当你执行某个命令后,该命令在你的会话中进行,而不是在SSH连接中进行。因此,当你退出SSH连接时,你实际上是断开了与服务器的连接,而不是终止了会话中的命令。

    要想终止在服务器上运行的命令,可以使用以下方法之一:

    1. 使用Ctrl+C组合键:如果你在服务器上执行了某个命令,可以按下Ctrl+C组合键,这会发送一个中断信号给命令,使其终止执行。

    2. 使用kill命令:如果你知道要终止的命令的进程ID(PID),可以使用kill命令来终止该进程。可以使用ps命令查看正在运行的进程,并找到你要终止的命令的PID,然后使用kill命令发送终止信号给该进程。

    3. 使用nohup命令:如果你希望在SSH连接断开后仍然继续在服务器上执行某个命令,可以使用nohup命令。nohup命令允许你将一个命令放在后台执行,并将其与一个新的终端会话(Terminal session)关联起来,这样即使你退出SSH连接,该命令也会继续在服务器上执行。例如,可以使用以下命令来使用nohup执行一个命令:nohup command &。

    总之,Linux退出SSH命令后,已经在远程服务器上运行的命令会继续执行,但你可以使用特定的方法来终止或继续在服务器上执行这些命令。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    是的,当你通过SSH连接到Linux服务器并执行命令时,如果你在退出SSH会话之后,命令仍然会继续执行。

    这是因为SSH是一种远程登录协议,它允许你在远程服务器上执行命令并与之交互。一旦你通过SSH连接到服务器,你可以执行你想要的命令,并且它们将在服务器上继续运行,无论你是否仍然保持与服务器的连接。

    当你退出SSH会话时,你实际上只是断开了与服务器的连接,但是服务器上的进程仍然在后台运行。这意味着,如果你在退出SSH会话之前启动了一个长时间运行的进程,该进程将继续在服务器上运行,直到其完成或被手动终止。

    然而,有一些情况下,当你退出SSH会话时,服务器上的进程可能会被终止或中断。这取决于你在服务器上运行的进程以及你是如何退出SSH会话的。

    如果你使用的是普通的终端,例如通过运行`ssh user@host`连接到服务器,然后通过按下`Ctrl+D`或输入`exit`来退出SSH会话,那么你的进程将继续在后台运行。但是,如果你的SSH会话在运行时发生网络故障或SSH连接被意外中断,服务器上的进程可能会被终止。

    为了避免在退出SSH会话后进程被中断的情况,你可以使用以下方法:

    1. 使用`nohup`命令:在运行一个长时间运行的进程时,在命令前加上`nohup`,例如:`nohup command &`。这将使进程在后台运行,并且不会受到SSH会话的影响。

    2. 使用终端多路复用器:终端多路复用器(例如tmux或screen)可以让你在一个SSH会话内创建多个终端,并在退出SSH会话后继续运行。

    3. 使用后台运行命令:通过在命令后面加上`&`符号,可以使命令在后台运行,例如:`command &`。这将使进程在后台运行,并且不会受到SSH会话的影响。

    4. 使用服务管理器:使用系统的服务管理器(例如systemd或init.d)来设置和管理后台进程,这样无论你是否退出SSH会话,进程都会在后台持续运行。

    总之,当你退出SSH会话时,服务器上的进程通常会继续运行,但要确保你正在运行的进程不会被意外中断,可以使用适当的方法来保持进程的运行。

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

    当您在Linux中使用SSH连接到远程服务器并运行一个命令时,如果您退出了SSH会话,命令将会继续在服务器上执行。这是因为SSH客户端只是在远程服务器上启动了一个进程,并将您的命令发送到该进程。当您退出SSH会话时,该进程仍然在服务器上运行,并且命令将继续执行。

    实际上,当您使用SSH连接到远程服务器时,服务器会为您分配一个终端会话。这个终端会话是一个交互式的会话,您可以在其中执行命令。当您退出SSH会话时,终端会话并不会立即终止,而是转入后台运行。您可以使用以下几种方法来结束正在执行的命令:

    1. 使用Ctrl+C中断命令:如果您正在执行一个命令,并且想要终止它,可以按下Ctrl+C组合键来发送中断信号给正在运行的命令。这会导致命令立即终止执行。

    2. 使用Ctrl+Z暂停命令:如果您想要暂停正在执行的命令,并回到命令行提示符下执行其他操作,可以按下Ctrl+Z组合键。这会将命令放入暂停状态,并返回到命令行提示符下。您可以使用”bg”命令将命令转为后台继续执行,或使用”fg”命令将命令重新切换到前台执行。

    3. 使用”kill”命令终止进程:如果您需要终止命令执行的进程,可以通过进程ID(PID)使用”kill”命令来终止它。您可以使用”ps”命令查找正在执行的进程的PID,并使用”kill “命令来终止它。请注意,这将完全终止该进程,而不仅仅是结束命令的执行。

    总结起来,当您退出SSH会话时,正在执行的命令将会继续在服务器上执行。您可以使用上述方法来终止正在执行的命令。

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

400-800-1024

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

分享本页
返回顶部