Почему, если я запускаю программу через make-файл, она не отображается в списке jobs , а если я запускаю команду непосредственно из командной строки, это происходит?

#:~/code/coinprice-indicator$ python3 coin/coin.py &
[1903] python3 coin/coin.py &
#:~/code/coinprice-indicator$ Coin Price Indicator v0.9.3 running!
#:~/code/coinprice-indicator$ make
python3 coin/coin.py &
#:~/code/coinprice-indicator$ Coin Price Indicator v0.9.3 running!
#:~/code/coinprice-indicator$ 
#:~/code/coinprice-indicator$ jobs
#:~/code/coinprice-indicator$

1 ответ1

1

Это нормально. Цель jobs не в том, чтобы показать все фоновые процессы; в нем перечислены только те "задания", которые в настоящее время принадлежат вашей оболочке и могут контролироваться ею.

(То есть в интерактивной оболочке оператор & фактически добавляет их в список заданий оболочки в памяти. Но поскольку make запускает новый процесс подоболочки для каждой команды рецепта, информация о задании не распространяется автоматически вверх - она просто теряется.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .