У меня есть Makefile, который запускает веб-сервер Django. Я хотел бы, чтобы сервер запускался в фоновом режиме, а PID сохранялся в файл.
Мой рецепт выглядит так:
run: venv
@"${PYTHON}" "${APP}/manage.py" runserver 80
Интуитивно, чтобы создать фоновый процесс и захватить PID, мне нужно сделать что-то вроде этого:
run: venv
@"${PYTHON}" "${APP}/manage.py" runserver 80 & ; echo "$$!" > "${LOGDIR}/django.pid"
Это не работает, хотя. Под-оболочка, которую использует make (в моем случае / bin / sh), работает, когда вы используете:
<command> &
... для фонового процесса и работает при использовании:
<command> ; <command>
(или <command> && <command>
и т. Д.) Для объединения команд. Однако, когда я пытаюсь создать фоновый процесс для первого процесса и связать второй, я получаю следующую ошибку:
/bin/sh: -c: line 0: syntax error near unexpected token `;'
Каков наилучший способ создать фоновый процесс и записать PID в Makefile?
Спасибо
- B