从 Django 运行 shell 命令

2024-06-19

我正在 Django 中开发一个网页(使用 apache 服务器),需要调用 shell 命令来启用/禁用一些守护进程。我尝试这样做

os.system(service httpd restart 1>$HOME/out 2>$HOME/error)

并且该命令不返回任何内容。知道如何解决这个问题吗?


我将跳过我强烈建议您了解 Web 应用程序启动和停止系统进程的影响的部分,并尝试回答这个问题。

你的 django 应用程序不应该运行root用户,可能需要启动和停止服务。您可能可以通过以下方式克服这个问题:

  • 创建一个使用的脚本seteuid http://docs.python.org/library/os.html
  • 给该文件设置 uid 属性

脚本会是这样的

#!/usr/bin/python <- or wherever your python interpreter is
import os
os.seteuid(0)
os.system("service httpd restart 1>$HOME/out 2>$HOME/error")

要允许将有效 UID 设置为 root (0),您必须在 shell 中以 root 身份运行:

chown root yourscript.py
chmod u+s yourscript.py
chmod a+x yourscript.py

应该可以做到这一点。在你的 Django 应用程序中你现在可以调用os.system('yourscript.py')以 root 权限运行命令。

最后,我相信你传递给的命令os.system()不是你要找的,因为你谈论启用和禁用守护进程,而你所做的只是重新启动 apache...这反过来似乎是你的 django 运行的地方,所以在实践中你会杀死您自己的网络应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Django 运行 shell 命令 的相关文章

随机推荐

  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • CKEditor 类被剥离

    我有一个自定义插件 它添加了一个带有附加类的链接 当我使用 源 按钮查看此内容时 它会显示该类并且看起来应有的样子 但是 当我返回 WYSYWIG 视图并再次查看源代码时 该类已被删除 知道如何阻止这种情况发生吗 在此先感谢您的帮助 Che
  • Neo4j节点创建速度

    我的笔记本电脑上有一个新的 neo4j 设置 通过 REST API 创建新节点似乎相当慢 平均约 30 40 毫秒 我在谷歌上搜索了一下 但找不到任何真正的基准来衡量 应该 花多长时间 有这个帖子 https www arangodb c
  • 删除 VBA 按钮集合

    我正在使用以下脚本在 Excel 中生成按钮 范围正是我希望放置它的位置 Sub CreateAddButton rng As Range Dim btn As Button With Worksheets User Set btn But
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 如何修复nodejs Express服务器中的“MulterError:意外字段”?

    我正在设置一个服务器来从客户端上传 zip 文件 服务器运行express和multer来执行此操作 上传文件时 服务器抛出 MulterError 意外字段 错误 我无法弄清楚是什么导致了它 我尝试过使用 png 图像 效果很好 但对于
  • 如何减少导航图标和工具栏标题之间​​的差距?

    我的问题是导航抽屉图标和工具栏标题之间 有多余的空间 示例图像如下 工具栏的xml视图是
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 如何使用 NSUserDefaults 正确工作(检索值)

    我的代码中有一个简单的方法 如下所示 BOOL isFirstTimeLogin NSString t gName NSString stringWithFormat NSUserDefaults standardUserDefaults
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 以嵌套反应形式使用 setControl

    我想知道当我在另一个 formBuilder 组中有一个数组时 我必须做什么才能以反应形式使用 setControl 和 get 例如 this formulario this formBuilder group title this ra
  • 从Excel单元格中提取固定长度的数字

    一些类似名称的线程 但仍然无法解决我的问题 我需要从 Excel 字符串中提取固定长度的 NUMBER 值 在我的场景中为 8 位数字 为此目的提供了以下 Excel 公式 MID A1 FIND SUBSTITUTE SUBSTITUTE
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below
  • 如何恢复误删除的Gitlab问题?

    看来我不小心删除了一个Gitlab问题 有什么办法可以恢复吗 None
  • 使用 Java 为 MongoDB 中的外部值分配权重

    这就是我如何创建具有不同权重的索引蒙戈外壳 db blog ensureIndex content text keywords text about text weights content 10 keywords 5
  • UiAutomator 2.0 和 Eclipse

    有什么办法可以编译吗UiAutomator 2 0使用 Eclipse 和 Ant 我已经添加了android jar and uitautomator jar文件来自Android 23但无济于事 Eclipse 还是看不到UiAutom
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM