从django应用程序视图运行bash脚本

时间:2016-03-12 17:37:41

标签: python html django bash django-cms

我尝试从我的服务器启动bash脚本,通过单击HTML按钮和用户输入从我的django应用程序调用该脚本。该脚本创建了一个新的django站点,其中包含Gunicorn和Nginx等附加配置。 当我通过./manage.py runserver 172.16.10.10:8080运行服务器并调用bash脚本时,脚本会创建一个新的网站,其中包含正确的gunicorn conf和Nginx。但是当我使用gunicorn Nginx从我的“生产服务器”运行bash脚本时,脚本运行不正常。我会在文字前面加上 u 来收到此错误:

异常类型:CalledProcessError 例外值:命令[“sudo”,“ - u”,“user”, “/home/user/mksite.sh",u"newsite”,“newsite.braghnuz”]返回非零退出状态1

这是我的views.py配置:

def user_input(request):
    if request.method == 'GET':
        form = ContactForm()
        else:
            form = ContactForm(request.POST)
            if form.is_valid():
            from_email = form.cleaned_data['from_email']
            domain = form.cleaned_data['domain']
            project = form.cleaned_data['project']
            subprocess.check_output(["sudo", "-u", "user", "/home/user/mksite.sh", project, domain])

               return redirect('thanks')
        return render(request, "name.html", {'form': form})

def thanks(request):
        return HttpResponse('Thank you!')

我还为Nginx和gunicorn添加了额外的超时值,以便嘿不会超时。我不知道了,所以我转向你,一个以前经历过并可以帮助我的人?正如我在./manage.py runserver中提到的那样,bash脚本可以完成它的工作,但是使用Nginx和Gunicorn bash脚本运行的生产服务器不起作用。

0 个答案:

没有答案