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

macOS终端nohup运行Python脚本失效,关闭终端程序终止求助

Python脚本后台持续运行问题解决

修正nohup命令

你当前的命令未处理标准错误输出,可能导致进程和终端仍存在关联,关闭终端时进程随之终止。改用以下命令:

nohup python3 -u "脚本路径" > out.log 2>&1 &

2>&1将标准错误重定向到标准输出,确保所有输出都写入日志文件,切断进程与终端的输出关联。

执行命令后,可通过disown将进程从当前终端作业列表移除,进一步避免终端关闭的影响:

# 先用jobs命令查看后台作业编号(比如%1),再执行
disown %1

验证方法:关闭终端后重新打开,执行ps aux | grep python3,若能看到脚本进程则说明成功。

替代方案

如果nohup仍不生效,可尝试以下方法:

1. 使用screen/tmux

适合需要随时重新连接查看脚本运行状态的场景:

  • 安装screen(Debian/Ubuntu):sudo apt install screen
  • 启动会话:screen
  • 在会话内运行脚本:python3 "脚本路径"
  • 分离会话(保留后台运行):按Ctrl+A再按D
  • 重新连接会话:screen -r

2. 创建systemd服务

适合长期运行、需要开机自启的脚本:

  1. 创建服务文件/etc/systemd/system/python-script.service,替换路径和用户名:
    [Unit]
    Description=后台运行的Python脚本
    After=multi-user.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/python3 /绝对路径/到/你的脚本.py
    Restart=always
    User=你的系统用户名
    
    [Install]
    WantedBy=multi-user.target
    
  2. 重新加载systemd配置:sudo systemctl daemon-reload
  3. 启动服务:sudo systemctl start python-script
  4. 设置开机自启:sudo systemctl enable python-script
  5. 查看运行状态:sudo systemctl status python-script

内容的提问来源于stack exchange,提问作者cur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:07:15