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

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

目录

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

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

我们可以关闭浏览器,退出实例,程序依然会正常运行。

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

在退出实例后,重新登陆我们将会看到新的终端,此时有两个问题:

① 确认代码是否正常运行?

② 如何管理正常运行的后台程序呢?

均可以通过 screen -ls 命令

在终端输入下述命令并运行,将会返回当前screen正常后台运行的所有程序

// 获取当前在screen后台运行的所有命令
screen -ls

返回结果:

可以看到,这里显示有两个screen处于on的状态(也就是刚刚的python3 test.py命令) 

其中各部分信息含义如下:

  • 9217/10180:代表这个后台程序的PID,即进程ID——最重要,需要通过这个PID来管理此后台程序,比如停止运行等。
  • iZbp.......:代表当前主机名,即这台计算机的名字
  • (03/13/2024......):此命令开始运行的时间

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

需要对当前正在后台执行的命令进行管理时,我们可以通过 screen -r -d PID进入某个程序的面板,并通过screen -S PID -X quit的方式删除某个screen面板。

运行:

screen -r -d 9217

可以进入进程PID位9217的前述后台程序的screen面板,显示结果为:

可以看到程序如我们预期正常运行中。

运行:

screen -S 9217 -X quit

即可删除该面板,此时我们再运行screen -ls,可以发现:

仅有1个screen处于on的状态,也就意味着,PID9217这个后台程序被kill掉了,那个程序对应的代码也就停止运行。

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

当通过screen -r PID进入到一个screen查看当前运行状态之后,我们往往需要执行“退出到新的终端”等操作,这个时候可以通过ctrl系列命令进行操作

  • ctrl+a c:在screen会话中新建一个新的终端页面——慎用,会在这个screen中停止代码执行而创建一个新的终端。也就是这个screen还在,但是screen进去之后已经是一个新的终端了。
  • ctrl+a d:从screen会话中分离出当前会话——这个用的最多,也就是从screen回到刚刚的那个终端。
  • ctrl+a p:返回到前一个终端页面
  • ctrl+a n:返回到后一个终端页面
  • ctrl+a k:退出当前screen会话
  • ctrl+a [:进入滚动/复制模式,可以查看这个screen会话的历史输出,因为如果不用这个命令的话,在screen窗口之外的就看不到了,也没法上翻。

欢迎关注:钟觉浅Tech。

​​​​​​​

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值