从django管理页面重新启动服务的选项

时间:2019-01-02 15:24:33

标签: django apache apache2 mosquitto

我正在使用Apache2,Django,Mosquitto。我想在Django管理页面中选择一个选项来重新启动Mosquitto MQTT服务器。我遇到了subprocess模块,但是我不知道如何实现上述功能。基本上,我需要通过执行命令sudo service mosquitto restart重新启动Mosquitto,因为有时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,]

reload.sh

#!/bin/bash
sudo service mosquitto restart

0 个答案:

没有答案