脚本无法干净地停止

脚本无法干净地停止

我编写了这个小的 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

这里是错误修复。使用该分支进行全新安装后,它似乎运行良好。

相关内容