【发布时间】:2012-02-27 13:07:18
【问题描述】:
我有一个启动 Django Web 服务器的 Makefile。我希望在后台启动服务器,并将 PID 保存到文件中。
我的食谱是这样的:
run: venv
@"${PYTHON}" "${APP}/manage.py" runserver 80
直观地说,要后台处理进程并捕获 PID,我必须执行以下操作:
run: venv
@"${PYTHON}" "${APP}/manage.py" runserver 80 & ; echo "$$!" > "${LOGDIR}/django.pid"
不过,这不起作用。 'make' 使用的子 shell(在我的例子中是 /bin/sh)在您使用时起作用:
<command> &
...后台进程,并在使用时工作:
<command> ; <command>
(或<command> && <command> 等...)链接命令。但是,当我尝试将第一个进程置于后台并链接第二个进程时,出现以下错误:
/bin/sh: -c: line 0: syntax error near unexpected token `;'
使进程后台运行并在 Makefile 中捕获 PID 的最佳方法是什么?
谢谢
- 乙
【问题讨论】:
-
我很好奇您为什么使用
make来启动网络服务器?这是某种测试套件吗?祝你好运! -
@shelter:我正在开发一个 Web 应用程序,并且我正在使用 Makefile 来提供一种快速启动本地 Web 服务器的方法,用于开发和测试目的。
标签: shell makefile sh background-process