我有一个通过命令行启动的python脚本,可以随时杀死。
我想创建一个简单的 Web 界面,用户可以在其中登录并启动该过程并根据命令杀死它。
我意识到这对于 Django 和后台任务等库可能是可能的,但对于像我想要做的事情这样简单的事情来说,这似乎有点矫枉过正。
有没有一种简单的方法可以通过网页启动和停止 python 作业?
这不是Python,我不确定你想要得到多复杂,但它是我经常使用的东西,它非常简单和裸露。只是一个小的Go程序,它启动服务器并在收到请求时运行dowebhook.sh
命令。您可以换出您喜欢的任何命令,甚至可以使用更多处理程序添加更多路由以运行更多命令。您必须针对运行它的架构编译程序,但优点是您现在有一个二进制文件,不需要框架或依赖项。使用管理引擎或 systemd 保持程序运行。在nginx(或任何你喜欢的服务器(中设置一个代理:8000来定义端点。做。
现在,您的命令只需调用端点即可执行,您可以按照自己喜欢的任何方式触发该端点 - 如果您正在谈论接口,它可以是一个静态页面,其中包含一个进行 AJAX 调用的按钮。
package main
import (
"fmt"
"net/http"
"os/exec"
)
func handler(w http.ResponseWriter, r *http.Request) {
out, err := exec.Command("dowebhook.sh").Output()
if err != nil {
fmt.Printf("There was a webhook error: %s", err)
}
fmt.Fprintf(w, "Result of %s is %s", r.URL.Path[1:], out)
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8000", nil)
}