宝塔自带的python项目网站,如何实现开机启动和进程守护
时间 : 2024-01-09 22:36:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

宝塔面板是一款非常友好的服务器管理软件,可以轻松地搭建和管理各种项目。如果你在宝塔面板上搭建了一个Python项目网站,并希望实现开机启动和进程守护,可以通过以下步骤来完成。

步骤一:创建启动脚本

首先,在服务器上创建一个启动脚本用来启动你的Python项目。打开终端或SSH连接到服务器,并执行以下命令创建一个脚本文件:

sudo nano /etc/init.d/my_project

在打开的编辑器中,将以下内容输入到脚本文件中:

#!/bin/sh

# 项目路径

PROJECT_DIR=/path/to/your/project

# 虚拟环境路径

VENV_DIR=/path/to/your/venv

# 启动命令

CMD="$VENV_DIR/bin/python $PROJECT_DIR/manage.py runserver"

# 进程名称,自行替换

NAME=my_project

case "$1" in

start)

echo "Starting $NAME..."

cd $PROJECT_DIR

su -c "$CMD &" $USER

;;

stop)

echo "Stopping $NAME..."

pkill -f "$CMD"

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: $0 {start|stop|restart}"

exit 1

;;

esac

exit 0

请确保替换以下变量为你自己项目的路径和虚拟环境的路径:

- PROJECT_DIR: 你的Python项目的路径

- VENV_DIR: 虚拟环境的路径

- CMD: 项目的启动命令

- NAME: 进程的名称

保存并关闭文件。

步骤二:设置脚本权限

执行以下命令给脚本文件设置可执行权限:

sudo chmod +x /etc/init.d/my_project

步骤三:设置开机启动

执行以下命令将脚本添加到开机启动项中:

sudo update-rc.d my_project defaults

步骤四:启动和停止项目

现在,你可以使用以下命令来启动、停止或重启你的项目了:

sudo service my_project start # 启动项目

sudo service my_project stop # 停止项目

sudo service my_project restart # 重启项目

至此,你的Python项目网站已经能够实现开机启动和进程守护了。当服务器重启时,项目将自动启动,并在后台运行。如果需要停止项目或重启项目,只需执行相应的命令即可。希望这些步骤对你有所帮助!

其他答案

宝塔面板是一款非常方便的网站管理工具,它自带了Python项目网站的部署功能。但是,宝塔面板默认情况下并不支持开机自启动和进程守护,需要进行一些额外的设置。

下面将介绍如何在宝塔面板中实现Python项目网站的开机启动和进程守护。

###### 一、创建shell脚本

首先,我们需要创建一个shell脚本,用于启动我们的Python项目。在服务器上任意位置创建一个文件,命名为`start.sh`(也可以选择其他名称)。

在`start.sh`中写入以下内容:

```shell

#!/bin/bash

source /root/.bashrc #替换为你的Python环境激活脚本路径

cd /path/to/your/project #替换为你的项目所在目录

nohup python your_project.py > /dev/null 2>&1 & #替换为你的项目启动命令

exit 0

这个脚本做了以下几个事情:

1. 使用`source`命令激活Python环境。

2. 进入到你的项目目录。

3. 使用`nohup`命令,以后台方式运行你的Python项目。

4. 将输出重定向到`/dev/null`,以屏蔽输出信息。

5. 使用`&`将进程放到后台运行。

6. 使用`exit 0`标志脚本执行成功。

请将上述脚本中的`/path/to/your/project`替换为你的项目所在目录,`your_project.py`替换为你的项目启动脚本文件。

保存并退出脚本文件。

###### 二、设置开机启动

1. 在宝塔面板中,找到“计划任务”选项,并点击进入。

2. 点击“添加新任务”,在弹出的窗口中填写以下信息:

- 名称:自定义任务名称,比如“项目启动”。

- 时间表:选择“定时任务”,设置为“@reboot”,表示在每次开机时执行任务。

- 命令:填写脚本的绝对路径,比如`/root/start.sh`。

3. 点击“确定”保存计划任务。

这样,当服务器开机时,宝塔面板会自动执行我们编写的启动脚本,从而启动Python项目。

###### 三、进程守护

如果我们的Python项目意外终止或者出现异常导致进程停止,我们希望能够自动重新启动项目。这就需要使用到进程守护功能。

在宝塔面板中启动守护进程的方式有很多,这里介绍一种简单的方式。

1. 在宝塔面板中,找到“计划任务”选项,并点击进入。

2. 点击“添加新任务”,在弹出的窗口中填写以下信息:

- 名称:自定义任务名称,比如“守护进程”。

- 时间表:选择“定时任务”,设置为“*/5 * * * *”,表示每5分钟执行一次任务。

- 命令:填写以下命令:

```shell

#!/bin/bash

result=$(ps -ef | grep your_project.py | grep -v grep)

if [[ -z $result ]]; then

cd /path/to/your/project #替换为你的项目所在目录

nohup python your_project.py > /dev/null 2>&1 & #替换为你的项目启动命令

fi

exit 0

这个脚本做了以下事情:

- 使用`ps`命令检查项目是否在运行,将结果保存在`result`变量中。

- 通过判断`result`变量是否为空,确定项目是否正在运行。

- 如果项目没有运行,则进入项目目录,并使用`nohup`命令重新启动项目。

请将上述脚本中的`/path/to/your/project`替换为你的项目所在目录,`your_project.py`替换为你的项目启动脚本文件。

3. 点击“确定”保存计划任务。

这样,宝塔面板会每隔5分钟执行一次守护进程任务,检查项目是否在运行,如果没有运行则重新启动。

通过以上步骤,我们就成功实现了Python项目网站的开机启动和进程守护。可以保证项目在服务器重启后自动启动,并且在意外终止时能够自动重新启动。