使用 Systemd常驻服务和开启自启动
使用 Systemd (推荐,适用于 Systemd 系统,如 Ubuntu 16.04+, CentOS 7+)
Systemd 是一个系统和服务管理器,是现代 Linux 发行版的标准。
创建 Systemd 服务文件:
创建文件/etc/systemd/system/your_project.service
(将your_project
替换为你的项目名称). 使用你喜欢的编辑器 (如sudo nano /etc/systemd/system/your_project.service
),并添加以下内容:复制代码[Unit] Description=Your Python Django Project After=network.target [Service] User=root WorkingDirectory=/www/wwwroot/xx/blog-backend Type=simple PrivateTmp=false Environment="NVM_DIR=/root/.nvm" Environment="PYENV_ROOT=/root/.pyenv" Environment="PATH=/www/wwwroot/xx/blog-backend/node_modules/.bin:/root/.pyenv/shims:/root/.nvm/versions/node/v18.18.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin:/root/bin" ExecStart=/root/.pyenv/shims/python3 manage.py runserver 0.0.0.0:xx --noreload Restart=on-failure [Install] WantedBy=multi-user.target
Description
: 服务的描述信息。After=network.target
: 确保网络服务启动后才启动此服务。User
: 运行服务的用户名。 重要: 确保使用具有项目访问权限的用户。WorkingDirectory
: 项目的根目录。ExecStart
: 要执行的命令。 确保使用 Python3 的完整路径(可以使用which python3
找到)。Restart=on-failure
: 如果服务意外停止,则自动重启。WantedBy=multi-user.target
: 在多用户模式下启动此服务。
启用并启动服务:
bash复制代码sudo systemctl daemon-reload # 重新加载 systemd 配置 sudo systemctl enable your_project.service # 设置开机自启 sudo systemctl start your_project.service # 立即启动服务
检查服务状态:
bash复制代码sudo systemctl status your_project.service
如果一切正常,你应该看到服务正在运行。
停止服务:
bash复制代码sudo systemctl stop your_project.service
禁用开机自启:
bash复制代码sudo systemctl disable your_project.service
使用 Systemd常驻服务和开启自启动
评论