位置:首页 > Python > Ubuntu 下 Python 安装后如何启动服务:用 systemd 托管脚本的完整方法

Ubuntu 下 Python 安装后如何启动服务:用 systemd 托管脚本的完整方法

时间:2026-08-23  |  作者:深海捕梦者  |  阅读:0

目录

  1. 为什么推荐用 systemd 管理 Python 服务
  2. 先给 Python 脚本执行权限
  3. 创建 systemd 服务文件
  4. 加载配置并启动服务
  5. 设置开机自启与日常管理命令
  6. 部署这类 Python 后台服务时要记住什么

前言

在 Ubuntu 里装好 Python 只是第一步,真正进入生产或长期运行场景时,关键问题是如何让脚本稳定地在后台持续运行。本文用 systemd 这套 Ubuntu 默认服务管理机制,把“脚本怎么启动、怎么托管、怎么开机自启、怎么判断是否运行正常”几件事拆开讲清楚,便于你按步骤完成部署,也能快速核对配置有没有写对。

在 Ubuntu 里装好 Python 之后,很多人下一步不是“怎么运行脚本”,而是“怎么让脚本长期稳定地在后台跑着”。如果你希望它像数据库、Web 服务那样由系统统一托管,最常见也最稳妥的做法就是交给 systemd 管理。

下面按实际部署顺序整理一遍:先处理脚本权限,再编写 .service 文件,随后加载配置、启动服务,并检查运行状态。照着做,你不仅能把脚本拉起来,也能判断它是否已经具备开机自启和故障自动恢复能力。

为什么推荐用 systemd 管理 Python 服务

直接在终端里执行 Python 脚本,只适合临时测试;一旦终端关闭,脚本往往也会退出。放到 Ubuntu 的正式环境中,更合适的方式是把它注册为 systemd 服务。

这样做的好处很直接:

  • 可以用统一命令启动、停止、重启服务;
  • 可以设置开机自动启动;
  • 服务异常退出后,可以按配置自动重启;
  • 更便于后续排查运行状态。

先给 Python 脚本执行权限

如果你的脚本还没有执行权限,先处理这一步:

chmod +x /path/to/your/python_script.py

这里的 /path/to/your/python_script.py 需要替换成脚本实际路径。虽然 systemd 主要依赖 ExecStart 来启动程序,但提前把权限设好,能减少后续执行时的权限问题。

创建 systemd 服务文件

核心步骤是创建一个服务描述文件,例如:

systemd 服务文件中关键字段与替换位置示意图
systemd 服务文件关键字段把 Python 脚本交给 systemd 管理时。
/etc/systemd/system/my_python_service.service

nanovim 打开后,写入以下内容:

[Unit]
Description=My Python Service
After=network.target

[Service]
Type=simple
User=
Group=
WorkingDirectory=/path/to/your/script/directory
ExecStart=/usr/bin/python3 /path/to/your/python_script.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

其中有几个字段需要特别注意:

服务文件里的关键字段怎么替换

  • User=:替换为实际运行脚本的用户。
  • Group=:替换为对应用户组。
  • WorkingDirectory=/path/to/your/script/directory:替换为脚本所在目录,避免脚本依赖相对路径时出错。
  • ExecStart=/usr/bin/python3 /path/to/your/python_script.py:保留 Python 解释器路径,并把脚本路径改成真实位置。
  • Restart=on-failure:表示脚本异常退出时自动重启。

如果你的环境仍在使用 Python 2,需要把:

/usr/bin/python3

改为:

/usr/bin/python2

加载配置并启动服务

服务文件创建完成后,systemd 还不知道有这份新配置,需要先重新加载:

Python 服务从加载配置到运行验证的命令流程图
服务启动与验证流程服务文件写完后,还需要按顺序完成重新加载、启动和状态检查,才能确认脚本已经被 systemd。
sudo systemctl daemon-reload

接着启动服务:

sudo systemctl start my_python_service

启动后马上检查状态:

sudo systemctl status my_python_service

如果输出中显示 active (running),通常就说明这个 Python 脚本已经作为后台服务正常运行起来了。

设置开机自启与日常管理命令

如果你希望系统启动时自动拉起这个服务,可以执行:

sudo systemctl enable my_python_service

后续日常维护时,最常用的是停止和重启:

sudo systemctl stop my_python_service
sudo systemctl restart my_python_service

这组命令基本覆盖了上线后的常见操作场景:首次启动、服务检查、重启更新,以及手动停用。

部署这类 Python 后台服务时要记住什么

在 Ubuntu 下,Python 脚本要想稳定地“跑成服务”,关键不在安装 Python 本身,而在于是否正确接入 systemd。最重要的几个点是:服务文件路径写对、User/Group 替换正确、WorkingDirectoryExecStart 使用真实路径,以及启动后用 systemctl status 确认状态。

只要这些配置无误,你的脚本就能从“手动执行的小程序”,变成一个可启动、可重启、可开机自启的标准 Ubuntu 服务。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多