在 Linux 服务器中保持 Python 脚本不挂断:使用 nohup 和 screen

确保 Python 脚本在远程 Linux 服务器中不挂断运行

在现代开发和运维中,远程访问 Linux 服务器已成为常态。特别是在运行长时间的 Python 脚本时,确保程序不因网络中断或终端关闭而挂断是至关重要的。两种常用的方法 —— nohupscreen,帮助你在远程环境中平稳运行你的脚本。

1. 为什么要确保程序不挂断?

在远程工作时,网络连接可能会不稳定,或者你可能需要临时关闭终端。若在这些情况下运行的脚本未能保持活跃,可能会导致数据丢失或任务中断。尤其是在处理长时间运行的任务(如数据分析、机器学习模型训练等)时,意外中断会浪费大量时间和资源。因此,选择合适的方法来确保程序持续运行是非常重要的。

2. 使用方式与优劣势

2.1 使用 nohup

使用方式
nohup(no hang up)命令用于忽略挂起信号,使得程序在用户退出后仍然继续运行。基本用法如下:

nohup python your_script.py &
  • & 符号将程序放入后台运行。
  • 输出将默认重定向到 nohup.out 文件中。

优点

  • 简单易用:只需在命令前加上 nohup,非常适合快速启动脚本。
  • 轻量级:不需要额外的工具或配置。

缺点

  • 输出管理:默认输出到 nohup.out,如果不监控该文件,可能会错过重要信息。
  • 无法交互:无法与运行中的程序进行交互,适合于不需要用户输入的任务。

2.2 使用 screen

使用方式
screen 是一个终端多路复用器,允许在一个会话中创建多个虚拟终端。使用步骤如下:

  1. 安装 screen

    • 如果你的系统未安装 screen,可以使用以下命令进行安装:

    对于 Debian/Ubuntu 系统

    sudo apt-get install screen
    

    对于 CentOS/RHEL 系统

    sudo yum install screen
    
  2. 启动一个新的 screen 会话并指定名称

    • 使用 -S 选项来指定会话名称,便于后续管理:
    screen -S my_session_name
    
  3. screen 会话中运行 Python 脚本

    • your_script.py 替换为你要运行的脚本名称:
    python your_script.py
    
  4. 将会话放入后台

    • 按下 Ctrl + A 然后按 D,这将使当前 screen 会话放入后台,脚本将继续运行。
  5. 查看当前运行的 screen 会话

    screen -ls
    
    • 这将显示所有当前的 screen 会话及其状态。
  6. 通过名称重新连接到一个 screen 会话

    • my_session_name 替换为你指定的会话名称:
    screen -r my_session_name
    
  7. 退出 screen 会话

    • screen 会话中,输入 exit 命令:
    exit
    
    • 当你在 screen 会话中输入 exit,会话将结束,脚本也会停止运行。

常用命令总结:

  • 启动新会话并指定名称:screen -S my_session_name
  • 放入后台:Ctrl + A 然后按 D
  • 列出会话:screen -ls
  • 通过名称重新连接会话:screen -r my_session_name
  • 退出会话:exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值