我需要我的Django应用程序才能重新启动运行它的Apache服务器。我正在使用mod_python。
哪种方式最简单?
答案 0 :(得分:1)
唯一可行的方法是,如果你给了你的Django应用程序root权限,这是非常不安全的。但是,假设您的应用程序以root用户身份运行,则可以运行
import subprocess
subprocess.Popen(['/etc/init.d/apache2', 'restart'])
或者您的发行版用于重新启动Apache的任何命令。如果Django应用程序不是root用户,您可以使用pexpect python库使用sudo
运行它。
import pexpect
child = pexpect.spawn('sudo /etc/init.d/apache2 restart')
child.expect('[sudo] password for .*:')
child.sendline(password)
child.interact()
请注意,这种方式要求您为apache用户提供运行sudo
的能力,这也是不安全的。总的来说,我看不到一种安全的方法来实现这一目标。