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

Ubuntu系统开机自启并后台运行Python程序的技术问询

在Ubuntu开机自动后台运行Python程序的实现方法

完全可以通过开机执行的服务/脚本实现,而且比手动用tmux操作更可靠、自动化程度更高。Ubuntu 16.04及以后版本推荐使用systemd服务来配置,这是当前标准的开机自启方案,能确保程序持续在后台运行,不受终端会话影响,甚至程序意外崩溃后还能自动重启。

一、使用systemd服务配置(推荐)

1. 创建服务文件

在/etc/systemd/system/目录下创建一个自定义的服务文件,比如命名为my-python-app.service(后缀必须为.service):

sudo nano /etc/systemd/system/my-python-app.service

2. 编写服务配置内容

将以下内容写入文件,注意替换占位符为你的实际信息:

[Unit]
Description=后台运行的Python应用
After=network.target  # 若你的程序依赖网络,保留这一行;无网络需求可删除

[Service]
User=your_username  # 替换为你的系统用户名,避免用root权限运行程序
WorkingDirectory=/home/your_username/python_scripts  # 替换为Python脚本所在的目录
ExecStart=/usr/bin/python3 /home/your_username/python_scripts/your_script.py  # 替换为Python解释器路径和脚本路径
Restart=always  # 程序意外退出时自动重启
RestartSec=5  # 重启间隔5秒
StandardOutput=append:/var/log/my-python-app.log  # 输出日志到指定文件
StandardError=append:/var/log/my-python-app.log  # 错误日志也写入同一文件

[Install]
WantedBy=multi-user.target

3. 启用并启动服务

执行以下命令使配置生效:

# 重新加载systemd配置
sudo systemctl daemon-reload

# 设置开机自启
sudo systemctl enable my-python-app.service

# 立即启动服务(无需重启系统)
sudo systemctl start my-python-app.service

4. 验证服务状态

  • 查看服务是否正常运行:
sudo systemctl status my-python-app.service
  • 实时查看程序日志:
journalctl -u my-python-app.service -f

二、备选方案:使用rc.local(适用于旧版Ubuntu)

如果是Ubuntu 18.04及更早版本,也可以通过/etc/rc.local实现开机自启:

  1. 若系统没有/etc/rc.local文件,先创建并赋予执行权限:
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
  1. 编辑/etc/rc.local,在exit 0之前添加以下内容(替换占位符):
su - your_username -c "/usr/bin/python3 /path/to/your_script.py > /var/log/my-python-script.log 2>&1 &"
  • 说明:su - your_username切换到普通用户运行程序,避免root权限风险;> /var/log/... 2>&1将程序输出和错误信息写入日志文件;&让程序在后台运行。

注意:Ubuntu 20.04及以后版本默认不再启用rc.local,因此更推荐使用systemd方案,稳定性和可维护性更强。

核心问题解答

  • 能否达成与tmux手动操作同等效果?
    不仅可以,systemd服务比tmux更可靠:开机自动启动,程序崩溃自动重启,无需依赖终端会话,即使你退出所有终端,程序依然持续运行。
  • 脚本/服务文件的位置:
    • systemd服务文件:/etc/systemd/system/目录
    • rc.local脚本:/etc/rc.local文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:40:20