我正在使用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