利用screen管理linux系统的程序后台运行(针对阿里云服务器)

本文介绍了如何在云服务器上利用screen工具解决程序在退出实例后停止的问题,包括如何在后台执行命令、查看和管理运行中的程序,以及通过ctrl命令进行操作以实现程序的稳定运行和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、背景:面临的问题——云服务器在退出实例后程序就停止运行

2、解决办法:screen的应用

2.1 使用screen <命令> 在后台执行命令

2.2 使用screen -ls 获取当前通过screen命令正在后台执行的所有命令

2.3 使用screen -r -d 命令管理后台程序

2.4 在一个screen会话中通过ctrl命令进行后续操作


1、背景:面临的问题——云服务器在退出实例后程序就停止运行

为实现程序摆脱手边电脑的网络条件影响,不间断稳定运行,我们通常会购买云服务器(阿里云、腾讯云)以让程序在云端运转。但在初次接触到云服务器时,会面临一个入门问题:

远程登录状态下,使用python xx.py可以使云服务器上的代码正常运行,而一旦退出实例(比如退出浏览器),代码就停止运行,无法实现不间断运行的目的。

怎么办呢?

2、解决办法:screen的应用

使用linux系统的screen工具可以实现云端服务器程序后台运行并管理后台运行的各项程序。

2.1 使用screen <命令> 在后台执行命令

// 执行命令 screen <你的命令行代码> 以让程序在后台运行
// 举例来说,我希望服务器在当前文件夹运行test.py文件
// 可以在终端中执行下述代码

① 方式一:直接screen运行命令
screen python3 test.py    // test.py文件的作用是每隔1s打印出当前数字

② 方式二:为此命令命别名,方便后续管理
screen -S my_test_project python3 test.py

 此时终端会切换至新的窗口执行输出代码,如下图:

### 如何在阿里云ECS上设置Jupyter Notebook运行Python程序 #### 安装必要的软件包 为了能够在阿里云ECS实例上顺利部署并使用 Jupyter Notebook 来编写 Python 程序,首先需要确保 ECS 实例已经安装了 Python 和 pip 工具。对于基于 Ubuntu 的系统而言,可以通过如下命令完成 Python3 及其依赖库的安装[^4]: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install python3-pip python3-dev ``` #### 创建虚拟环境(可选) 创建一个新的 Python 虚拟环境有助于隔离不同项目之间的依赖关系,防止版本冲突等问题的发生。通过下面这条指令可以快速建立一个名为 `myenv` 的新环境: ```bash python3 -m venv myenv source myenv/bin/activate ``` #### 安装 Anaconda 或 Miniconda (推荐) 考虑到后续可能涉及到的数据科学计算需求以及更方便地管理各种第三方库文件,在此强烈建议先下载并安装 Anaconda 或者轻量级版 Miniconda 。具体操作流程如下所示: 1. 访问官方网站获取最新版本链接; 2. 使用 wget 命令下载对应平台下的二进制分发包; 3. 执行 bash 文件按照提示完成整个过程。 如果选择了 Miniconda,则只需执行以下几条简单的 shell 指令即可轻松搞定一切准备工作: ```bash wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh ``` #### 安装 Jupyter Notebook 并启动服务 当上述步骤都完成后就可以正式进入主题——安装 Jupyter Notebook 本身啦!只需要简单输入一条 pip 或 conda 命令就能搞定全部事情: ```bash pip install jupyterlab # 如果是在纯 Python 环境下工作的话 # 或者 conda install -c conda-forge jupyterlab # 若采用的是 Conda 方式来进行包管理 ``` 接着就是配置防火墙规则允许外部访问指定端口号的服务请求,并且修改默认配置使得能够支持跨域资源共享(CORS),从而让浏览器客户端正常加载页面资源而不受同源策略限制影响。最后一步则是利用 nohup 加后台进程的方式保持长时间稳定在线状态提供交互式编程体验给远方用户们享受[^1]。 #### 开放安全组中的相应端口 为了让公网上的设备能成功连接到位于云端之内的 Jupyter Notebook Server ,还需要前往控制台调整对应的网络安全组策略以便于解除对特定 TCP 协议端口(比如常见的 8888 )所施加的一切进出站流量管制措施。 #### 启动 Jupyter Notebook 现在一切都准备就绪之后便可以直接开启 Jupyter Notebook 服务了。为了避免因终端关闭而导致会话中断的情况发生,通常会选择配合 screen 或 tmux 这样的工具一起使用以维持持久化的 SSH Session;当然也可以考虑借助 systemd service unit file 实现更加优雅的任务调度机制[^3]。 ```bash nohup jupyter lab --port=8888 --allow-root --ip=* & ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值