赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 实例
  6. 连接实例
  7. 连接常见问题
  8. SSH远程连接问题
  9. Linux系统下如何保持进程在SSH客户端断开后仍继续运行?

Linux系统下如何保持进程在SSH客户端断开后仍继续运行?

  • SSH远程连接问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

本文介绍在Linux系统的ECS实例内,当断开SSH客户端后,如何保持进程继续运行的解决方案。

使用场景

在Linux系统中,在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍两种保障程序在您退出登录后持续运行的方法。

方法一:使用nohup执行命令

nohup,可以使运行的命令忽略SIGHUP信号。因此,即使退出登录,程序仍旧会继续执行。通常情况下,在nohup命令尾部加上&字符,才能将命令放至后台执行。具体示例如下所示。

说明

nohup通常用于执行无干预的自动化程序或脚本,无法完成带有交互的操作。

  1. 执行如下命令,每秒输出一行信息。

    bash hello.sh

    系统显示类似如下。

  2. 使用nohup执行命令。

    在命令前加上nohup,末尾加上&,可以看到nohup输出了一行信息,再Enter键就跳回了Shell命令行,此时命令已经在后台执行了,nohup将命令的输出重定向至当前目录的nohup.out文件中。同时,nohup会将对应程序的PID输出,PID可用于需要中断进程时结束进程。

    说明

    也可以使用重定向将程序的输出改为自己想要的文件名,如下所示,则程序的输出就会写到hello.log文件中。

    nohup bash hello.sh >hello.log &
    nohup bash hello.sh &

    系统显示类似如下。

  3. 执行如下命令,可以持续的查看nohup.out的输出,达到监控程序的效果。

    tail -f nohup.out
  4. 执行如下命令,结束进程。

    kill -TERM [$PID]
    说明

    [$PID]为nohup命令输出的值。

方法二:使用screen执行命令

GNU Screen是一款用于命令行终端切换的软件,可以视为命令行界面的窗口管理器。只要Screen本身没有被终止,在其内部运行的会话都可以恢复,适合长时间运行的任务。

  1. 安装screen工具。

    • CentOS系列系统安装命令如下所示。

      说明

      CentOS 6与CentOS 8操作系统版本结束生命周期(EOL),请先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?

      yum install screen
    • Ubuntu系统:

      sudo  apt-get  install screen
  2. 创建screen窗口:

    screen -S [$Name]
    说明

    [$Name]为自定义会话名称

  3. 列出screen窗口:

    screen -ls

    系统显示类似如下。

  4. 当需要运行脚本、执行程序时,在命令前添加screen即可。

  5. 同时按Ctrl+a+d键,就可以退出SSH登录,但不会影响screen程序的运行。

  6. 需要继续工作时,登录实例,然后执行如下命令,恢复会话即可。

    screen -r -d
相关文章

Linux内核参数net.core.optmem_max设置过小导致无法远程连接实例 2025-04-01 11:59

net.core.optmem_max 是 Linux 内核中的一个网络参数,用于设定每个套接字所允许的最大缓冲区的大小。该参数直接影响网络应用程序在处理大量并发连接和高带宽流量时的性能。如果设置过小,可能导致网络性能下降、丢包增多和时延过高,从而影响远程连接实例的稳定性。本文将介绍如何调整该参数。

Linux实例中由于SELinux服务开启导致SSH远程连接异常 2025-04-01 11:59

本文介绍Linux实例中由于SELinux服务开启导致SSH远程连接异常时的解决方案。 问题描述 在SSH远程连接Linux实例时,即便密码正确输入后,在命令行或secure日志中也会出现如下错误信息。

Linux实例中,SSH登录或数据传输速度都很慢怎么办? 2025-04-01 11:59

本文介绍Linux系统的ECS实例中,SSH登录或数据传输速度都很慢的问题原因和解决方案。 问题现象 在Linux系统的ECS实例中,通过外网或内网使用SSH服务登录或数据传输时,速度很慢。 问题原因 该问题可能是ECS实例中,SS

Linux实例如何设置SSH客户端的会话连接保持时间 2025-04-01 11:59

概述 使用SSH客户端远程连接Linux系统的阿里云ECS实例,连接会话闲置一段时间后,基于安全考虑,SSH客户端会在超过特定时间后自动终止远程连接。若希望延长SSH客户端的会话连接保持时间,请参考本文进行操作。 详细信息 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾

Linux系统下如何保持进程在SSH客户端断开后仍继续运行? 2025-04-01 11:59

本文介绍在Linux系统的ECS实例内,当断开SSH客户端后,如何保持进程继续运行的解决方案。 使用场景 在Linux系统中,在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍两种保障程序在您退出登录后持续运行的方法。

Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误怎么办? 2025-04-01 11:59

本文介绍在Linux系统的ECS实例中,启动SSH服务提示“Failed to start OpenSSh server daemon”错误的原因和解决方案。 问题现象 在Linux系统的ECS实例中,SSH服务(sshd.service)无法启动,运行systemctl status sshd.s

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号