хочется сделать одну вещь:
при заходе на определённый URL помимо выплёвывания в браузер сообщения “Hello World”
параллельно на сервере будет запускаться команда (или несколько команд), стандартный вывод которой должен перенаправляться в заранее указанный файлик.
собственно в той же связке но с mod_python всё получилось примерно так:
views.py
from django.http import HttpResponse
from subprocess import Popen
import threading
import os
import sys
import my_helper
def external(*args,**kwargs):
pid = os.fork()
if pid:
os.waitpid(pid,0)
print "Done"
return
log = open("/var/www/ext.log","a+",0)
log.truncate()
os.dup2(log.fileno(),1)
os.dup2(log.fileno(),2)
proc = Popen("ps aux",shell=True,bufsize=0)
proc.wait()
log.flush()
helper.one()
log.flush()
log.close()
sys.exit()
def start():
thread = threading.Thread(target=external)
thread.setDaemon(True)
thread.start()
import time
def my_view(request):
start()
return HttpResponse('Hello, world!')
from subprocess import Popen
def one():
proc = Popen("cat /proc/%s/maps" %(os.getpid()),shell=True,bufsize=0)
proc.wait()
а вот с mod_wsgi - в моём лог-файле я вижу только вывод ps aux, но не вижу вывода функции one.
у кого нибудь есть идеи?