Как я могу запустить команду в фоновом режиме без амперсанда (&)? [закрыто]

Как я могу запустить команду в Bash в фоновом режиме без амперсанда (&) в конце команды?

Обновление: Я хочу это сделать, чтобы я мог выполните пока inotifywait -e измените app.py; сделать killall -9 python; python app.py &; done , но это невозможно из-за синтаксиса.

3
задан 26 October 2015 в 09:13

2 ответа

Используйте coproc python app.py

От man bash

, Совместно обрабатывает

, А совместно обрабатывают, команда оболочки, которой предшествует coproc зарезервированное слово. Совместно обрабатывание выполняется асинхронно в подоболочке, как будто команда была завершена с & оператор управления, с двухсторонним каналом estab‐ lished между выполняющейся оболочкой и совместно обрабатыванием.

формат для совместно обрабатывания:

coproc команда [NAME] [перенаправления]

4
ответ дан 1 December 2019 в 15:24

Ваш синтаксис немного прочь:

while inotifywait -e modify app.py; do killall -9 python; python app.py &; done

Это должно быть:

while inotifywait -e modify app.py; do killall -9 python; python app.py & done

В отличие от подобного языкам C, у Вас не может быть пустого оператора прежде ; или &.

2
ответ дан 1 December 2019 в 15:24

Другие вопросы по тегам:

Похожие вопросы: