若要让 Django 项目在 Ubuntu 系统下开机自启,你可以通过 systemd
服务来实现。systemd
是现代 Linux 系统广泛使用的系统和服务管理器,下面为你详细介绍设置步骤:
1. 创建服务文件
使用文本编辑器(如 nano
或 vim
)创建一个新的 systemd
服务文件,通常服务文件会放在 /etc/systemd/system/
目录下,你可以将其命名为 django_project.service
,其中 django_project
可替换为你项目的名称。
sudo nano /etc/systemd/system/django_project.service
在打开的文件中添加以下内容:
[Unit]
Description=Django project service
After=network.target[Service]
User=root # 运行服务的用户,可根据实际情况修改
Group=root # 运行服务的用户组,可根据实际情况修改
WorkingDirectory=/opt/dvi_video # Django 项目的根目录,需替换为实际路径
ExecStart=/opt/dvi_video/.venv/bin/python manage.py runserver 0.0.0.0:8000 # 启动 Django 服务器的命令,需根据实际情况修改
Restart=always # 若服务崩溃或停止,自动重启[Install]
WantedBy=multi-user.target
配置说明:
- [Unit]:该部分用于描述服务的基本信息和启动顺序。
Description
是对服务的简要描述;After=network.target
表示该服务要在网络服务启动之后再启动。 - [Service]:这部分定义了服务的运行方式。
User
和Group
指定了运行服务的用户和用户组;WorkingDirectory
是 Django 项目的根目录;ExecStart
是启动服务时要执行的命令;Restart=always
意味着服务在崩溃或停止时会自动重启。 - [Install]:
WantedBy=multi-user.target
表示该服务会在多用户模式下被启动。
2. 重新加载 systemd
管理器配置
在创建或修改服务文件后,需要重新加载 systemd
管理器的配置,使新的服务文件生效。
sudo systemctl daemon-reload
3. 启动服务并设置开机自启
启动 django_project
服务,并设置其在开机时自动启动。
sudo systemctl start django_project.service
sudo systemctl enable django_project.service
start
命令用于立即启动服务。enable
命令用于设置服务在开机时自动启动。
4. 验证服务状态
你可以使用以下命令来检查服务的运行状态:
sudo systemctl status django_project.service
如果服务正常运行,你会看到类似如下的输出:
● django_project.service - Django project serviceLoaded: loaded (/etc/systemd/system/django_project.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2025-03-26 14:30:00 CST; 1min agoMain PID: 12345 (python)Tasks: 5 (limit: 4672)Memory: 10.0MCGroup: /system.slice/django_project.service└─12345 /opt/dvi_video/.venv/bin/python manage.py runserver 0.0.0.0:8000
5. 停止或禁用服务(可选)
如果你后续需要停止服务或取消开机自启,可以使用以下命令:
sudo systemctl stop django_project.service # 停止服务
sudo systemctl disable django_project.service # 取消开机自启
通过以上步骤,你就可以将 Django 项目设置为在 Ubuntu 系统开机时自动启动。