回答
這將是可能的唯一方法是如果你給你的Django應用程序根權限,這是非常不安全的。但是,假設你的應用程序以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
這也是不安全的能力。總的來說,我看不到一種安全的方法來實現這一點。
那麼可以將sudo訪問限制爲僅運行某些應用程序或腳本。但是,總而言之,我猜測OP是在嘗試使用錯誤的機制來解決一些潛在的挑戰...... – andy
@andy同意 - 我很肯定有一種更好的方法來解決潛在的問題,而不是重新啓動Apache。 –
@Zhehao:我相信你想寫:「subprocess.Popen(['/ etc/init.d','apache2 restart'])」 –
- 1. 必須在Apache上使用Django重新啓動Apache mod_wsgi
- 2. Django Apache FastCGI重啓
- 3. Apache重新啓動歷史
- 4. 重新啓動Apache是掛
- 5. Capistrano重新啓動Apache
- 6. 無法重新啓動Apache
- 7. WHM - 重新啓動Apache
- 8. 如何從apache服務的網頁重新啓動apache?
- 9. 爲每個請求重新啓動Apache下django的deamon進程
- 10. 重新啓動Web服務器後Django/Apache代碼不能重新加載
- 11. Apache Nutch重新啓動抓取
- 12. Lightsail Wordpress實例重新啓動Apache
- 13. Apache 2重新啓動錯誤/ owncloud
- 14. Apache停止工作 - AH00428 - 重新啓動
- 15. 的Apache httpd的重新啓動失敗
- 16. httpd重新啓動錯誤:Apache
- 17. 如何重新啓動apache/tomcat
- 18. SSL到期後重新啓動Apache
- 19. Pubnub訂閱PHP,Apache的重新啓動
- 20. 的Apache重新啓動錯誤12.04
- 21. 在Docker上重新啓動Apache
- 22. Capistrano重新啓動Apache服務器
- 23. Python/Django - 用mod_wsgi啓動apache
- 24. 啓動,停止,使用vb6重新啓動apache
- 25. 重新啓動後重新啓動
- 26. Apache重新啓動後,Python WSGI應用無法重新加載?
- 27. delayed_job從capistrano重新啓動
- 28. 從Tomcat重新啓動Tomcat
- 29. 從php重新啓動Sphinx
- 30. 從JDBC重新啓動mysql
是否因爲您想重新加載應用程序源代碼? –
你不應該再使用mod_python,它已經被棄用了。使用mod_wsgi。 –