Захват PID фонового процесса, запущенного Makefile

У меня есть 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

7
задан Eldar Abusalimov 5 February 2012 в 23:46
поделиться