温馨提示×

centos python如何开机启动

小樊
40
2026-10-12 04:00:17
栏目: 编程语言

在 CentOS 上让 Python 程序开机启动,常见有 3 种方式,取决于你的 CentOS 版本(6 / 7+)和使用场景。


一、CentOS 7 / 8(推荐):systemd 方式 ✅

这是最规范、最推荐的做法。

示例:Python 脚本开机启动

假设:

  • Python 路径:/usr/bin/python3
  • 脚本路径:/opt/myscript/main.py

1️⃣ 创建 systemd 服务文件

sudo vi /etc/systemd/system/mypython.service

内容示例:

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

[Service]
ExecStart=/usr/bin/python3 /opt/myscript/main.py
WorkingDirectory=/opt/myscript
StandardOutput=journal
Restart=always
User=root

[Install]
WantedBy=multi-user.target

2️⃣ 重载并启用

sudo systemctl daemon-reexec
sudo systemctl enable mypython
sudo systemctl start mypython

3️⃣ 查看状态

systemctl status mypython
journalctl -u mypython

✅ 重启后会自动启动


二、CentOS 6(老系统):rc.local 方式

1️⃣ 编辑 rc.local

vi /etc/rc.d/rc.local

添加:

/usr/bin/python /opt/myscript/main.py &

2️⃣ 赋予执行权限

chmod +x /etc/rc.d/rc.local

⚠️ 仅适合简单脚本,不推荐复杂服务


三、使用 crontab @reboot(简单场景)

crontab -e

添加:

@reboot /usr/bin/python3 /opt/myscript/main.py >> /var/log/mypython.log 2>&1

✅ 适合轻量任务
❌ 不保证启动顺序


四、常见问题

Python 找不到模块?

在 service 中指定环境:

Environment=PYTHONPATH=/opt/myscript

虚拟环境?

ExecStart=/opt/venv/bin/python /opt/myscript/main.py

需要网络?

After=network-online.target
Wants=network-online.target

总结建议

场景 推荐方式
CentOS 7/8 ✅ systemd
老系统 rc.local
简单脚本 crontab

如果你愿意,可以告诉我:

  • CentOS 版本
  • Python 版本
  • 是否是 Web / 后台常驻程序

我可以帮你写一份可直接用的配置。

0 踩