django - 从 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
解决方案
推荐阅读
- java - 无法使用 Spring JPA READ_UNCOMMITTED 隔离级别读取未提交的数据
- javascript - 如何以反应形式验证输入类型文件大小
- google-people-api - 需要从 Google 获取每月评论数
- laravel - Laravel,从数据库中获取具有最高版本列的行
- python - 可以将这些冗长的代码更改为递归函数吗?
- sql - 当特定列中的 te 日期值时,如何在 Oracle 中获取昨天的日期?
- kiwi-tcms - 测试计划中缺少“默认组件”选项卡
- python - 为什么熊猫数据框将整数转换为浮点数据类型
- c# - IsConcurrencyToken() 对更新没有影响
- r - 将几个巨大的 .txt 文件 OVER LOOP 读取到 r 中的最快方法