首页 > 解决方案 > 从 django 管理页面重新启动服务的选项

问题描述

我正在使用 Apache2、Django、Mosquitto。我想在我的 Django 管理页面中有一个选项来重新启动 Mosquitto MQTT 服务器。我遇到了这个subprocess模块,但我不知道如何实现上述功能。基本上,我需要通过执行命令重新启动 Mosquitto,sudo service mosquitto restart因为有时 Mosquitto 冻结并重新启动它是解决此问题的临时解决方案。不幸的是,发生这种情况时,我可能无法访问我的工作站。所以如果我的 Django 管理页面有重启 Mosquitto 的选项会很方便。

我添加了一个应该触发重启命令的管理操作

def restart_server(modeladmin, request, queryset):
    import subprocess
    subprocess.call('./reload.sh', shell=True, cwd='/home/ubuntu')


class HomeAdmin(admin.ModelAdmin):
    list_display = ('name', 'alert_mode', 'system_version')
    actions = [restart_server,]

重载.sh

#!/bin/bash
sudo service mosquitto restart

标签: djangoapacheapache2mosquitto

解决方案


推荐阅读