У меня есть 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> &&
и т. д.), чтобы связать команды.Однако, когда я пытаюсь включить первый процесс в фоновый режим и связать второй, я получаю следующую ошибку:
/ bin / sh: - c: строка 0: синтаксическая ошибка рядом с неожиданным токеном `; '
Как лучше всего использовать фоновый процесс и записать PID в Makefile?
Спасибо
- B