You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Ubuntu实例中稳定运行后台Python长时脚本?

问题原因分析

核心原因:SIGHUP信号导致进程终止

你用python long_running_script.py &把进程放到后台,但它仍然属于当前SSH终端的会话组。当你关闭SSH连接(包括VSCode内置终端断开)时,终端会向所属的所有进程发送SIGHUP(挂起信号),默认情况下进程收到这个信号就会终止。

为什么偶尔能成功运行完?可能是终端退出时的信号传递出现了异常(比如VSCode终端的退出逻辑差异),但这种情况完全不可靠,不能依赖。

其他可能原因

  • 学校CloudBank账号的限制:部分机构的共享云账号会设置闲置进程清理策略,即使进程资源占用不高,长时间无交互的进程也可能被系统自动终止。
  • 进程组关联问题:后台进程如果没脱离原进程组,会话 leader(终端)退出时,整个进程组会被操作系统清理。
远程长期运行脚本的推荐方案

1. 使用nohup(最简单直接)

nohup命令会让进程忽略SIGHUP信号,同时将标准输出和错误重定向到指定文件,彻底脱离终端会话的控制。

执行命令:

nohup python long_running_script.py > script.log 2>&1 &
  • > script.log:把标准输出写入script.log
  • 2>&1:把标准错误重定向到和标准输出同一个文件
  • &:让进程在后台运行

之后可以用ps aux | grep long_running_script.py查看进程状态,日志直接查看script.log即可。

2. 使用终端复用工具(screen/tmux,适合需要随时交互查看)

这类工具会创建持久化的终端会话,即使SSH断开,会话依然在服务器上运行,重新连接后可以恢复会话查看脚本状态。

用tmux的示例步骤:

  1. 安装tmux:sudo apt install tmux
  2. 创建新会话:tmux new -s script_session
  3. 在新会话里运行你的脚本:python long_running_script.py
  4. 按下Ctrl+B然后松开,再按D,即可脱离当前会话,回到原来的终端
  5. 关闭SSH后,下次重新连接服务器,执行tmux attach -t script_session就能回到之前的会话,查看脚本运行状态

3. 配置systemd服务(最稳定,适合长期/开机自启的脚本)

如果脚本需要长期稳定运行,甚至服务器重启后自动恢复,推荐将其配置为systemd服务,由系统进程管理器托管。

步骤:

  1. 创建服务配置文件:sudo nano /etc/systemd/system/long_script.service
  2. 写入以下内容(根据你的实际路径和用户修改):
[Unit]
Description=Long Running Python Script
After=network.target

[Service]
User=ubuntu  # 替换为你的服务器用户名
WorkingDirectory=/home/ubuntu/script_dir  # 替换为脚本所在目录
ExecStart=/usr/bin/python long_running_script.py  # 替换为脚本路径
Restart=on-failure  # 进程失败时自动重启
StandardOutput=append:/home/ubuntu/script_dir/script.log  # 日志文件路径
StandardError=append:/home/ubuntu/script_dir/script_error.log

[Install]
WantedBy=multi-user.target
  1. 重新加载systemd配置:sudo systemctl daemon-reload
  2. 启动服务:sudo systemctl start long_script
  3. 设置开机自启(可选):sudo systemctl enable long_script

可以用以下命令管理服务:

  • 查看状态:sudo systemctl status long_script
  • 查看日志:journalctl -u long_script -f(实时查看)
  • 停止服务:sudo systemctl stop long_script

内容的提问来源于stack exchange,提问作者k-c

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:22:43