• python项目,关闭本地电脑,使程序运行在服务器上


    1. 引言

    对应深度学习,目前我们都是在本地写代码,然后通过ide(如pycharm)连接服务器,将代码和数据传输上去,然后在ide中运行代码,即可在服务器上跑程序了。pycharm连接服务器请看此博文pycharm连接服务器

    如果仅仅是这样,那么本地的电脑已关闭,服务器上跑的程序就关闭了。

    那么怎样关闭本地电脑,同时服务器上面又可以继续跑程序呢?请看下文。

    2. 环境

    本地IDE是:PyCharm
    服务器是Linux系统

    3. 服务器上screen的安装

    Step1: 检测有无安装screen
    使用命令:

    screen -ls
    
    • 1

    查看是否有无screen,如报错,说明没有安装screen.
    Step2: 连接上远程服务器,使用命令安装screen

    CentOS 系列系统: yum install screen
    Ubuntu 系列系统: sudo apt-get install screen
    
    • 1
    • 2

    3. 使用screen使得服务器不依赖本地电脑而运行

    Step0: 测试代码介绍

    import time
    import datetime
    import os
    
    time.sleep(20)
    data_path = "../data/"
    # 1. 创建文件对象
    file_name = os.path.join(data_path, 'test_screen.txt')
    file = open(file_name, mode='w')
    file.writelines(str(datetime.datetime.now()))
    file.close()
    
    for i in range(30):
        time.sleep(5)
        print("the number is = ", i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (1)延长20秒后,将当前时间写入到txt文件中。(方便观察脱机后,是否成功运行)
    (2)每延时5秒,输出一段文字。(方便再进入程序时,观察程序是否还在运行)

    Step1: 连接远程服务器
    无论使用pycharm还是Xterm或是其他软件,连接上远程服务器即可。
    之后的步骤,可借鉴:使用screen实现服务器独自跑项目

    Step2: 创建一个screen

    (base) git@ecs-1a2b-12345678:~# screen -S test
    
    
    • 1
    • 2

    Step3: 查看刚才创建的screen

    (base) git@ecs-1a2b-12345678:~# screen -ls
    There are screens on:
            14154.test      (03/29/2020 11:01:58 AM)        (Attached)
    1 Sockets in /run/screen/S-git.
    
    • 1
    • 2
    • 3
    • 4

    Step4: 切换路径到文件所在位置

    (base) git@ecs-1a2b-12345678:~# cd /home/folders/Fiona/program
    
    • 1

    Step5: 激活自己的环境

    (base) git@ecs-1a2b-12345678:/home/folders/Fiona/program# conda activate Fiona0329
    
    • 1

    Step6: 运行代码

    (Fiona0329) git@ecs-1a2b-12345678:/home/folders/Fiona/program# python run.py
    
    • 1

    Step7: 按ctrl+a+d,退出screen。然后就可以关闭本地电脑了,服务器此时会自己运行程序
    我这里就直接把pycharm关闭了。运行完后,重新进入到之前创建的screen,查看程序运行结果。

    Step8: 重新打开screen
    (1) 先使用命令找到之前创建的screen:
    在这里插入图片描述
    (2) 重新打开screen

    (base) git@ecs-1a2b-12345678# screen -r 15659.test
    
    • 1

    此时就可以查看之前运行代码的结果了,如图所示:
    器此时会自己运行程序**

    结果展示
    完成上面的步骤后,我直接关闭pycharm。过一段时间,我再进入创建的screen,发现程序已运行完成,内容也写入成功,输出也正确。具体如图:
    在这里插入图片描述
    在这里插入图片描述
    结果非常满意,在我关闭本地电脑后,服务器依旧能够自行运行程序,并输出结果。重新进入到运行的界面后,也能看到程序输出的结果,完美!

    Step9: 删除screen
    删除之前先找到要删除的screen:
    在这里插入图片描述
    然后进行删除:

    (base) git@ecs-1a2b-12345678# screen -X -S 16283.you quit
    
    • 1

    删除后,再查看,就没有被删除的screen了:
    在这里插入图片描述
    完结,撒花!!

  • 相关阅读:
    请各位编写一下单片机c51代码
    C# 系统学习(异步编程)
    麦子-linux字符设备驱动初探
    【译】命名变得简单:AI 支持的重命名建议
    洛谷 模拟 普及-
    【LeetCode题目详解】第九章 动态规划 part05 1049. 最后一块石头的重量 II 494. 目标和 474.一和零(day43补)
    安装Oracle
    LSKA(大可分离核注意力):重新思考CNN大核注意力设计
    设计模式之命令模式
    SQL的编写需要注意的问题
  • 原文地址:https://blog.csdn.net/qq_41915623/article/details/125468615