我编写了这个小的 shell 脚本来为我的 django 应用程序启动 gunicorn WSGI 服务器。我在 Ubuntu 12.04 上运行它,脚本启动干净,运行正常。问题是脚本和 gunicorn 即使在ctrl -之后仍继续运行C,即它没有返回提示符。
为什么会这样?我该如何解决?
脚本:
#!/bin/bash
NUM_WORKERS=3
cd /path/to/my/project
source ../bin/activate
gunicorn_django -w $NUM_WORKERS
答案1
启动服务器进程的正常方式是让它们在后台运行。例如
gunicorn_django -w $NUM_WORKERS &
停止服务器的常用方法是向它们发送信号,通常是服务器进程或启动它的脚本,将其进程 ID 保存到文件中,以便您的停止脚本可以执行类似以下操作
kill pid
查看脚本中的典型示例/etc/initd.d
。
答案2
这里是错误修复。使用该分支进行全新安装后,它似乎运行良好。