Как запустить программу внутри сценария оболочки и продолжить выполнение сценария оболочки, даже если программа остается открытой - PullRequest
6 голосов
/ 05 августа 2011

Я использую bash в Ubuntu.Я хотел бы, чтобы сценарий оболочки открывал программу и переходил к следующей строке сценария оболочки, даже если программа не завершилась.

Ответы [ 4 ]

7 голосов
/ 05 августа 2011

Добавление & к команде помещает ее в фоновый режим.

пример:

/path/to/foo    
/path/to/bar     # not executed untill foo is done


/path/to/foo &    # in background
/path/to/bar &    # executes as soon as foo is started

Подробнее о контроле заданий здесь и здесь

2 голосов
/ 05 августа 2011

Используйте что-то вроде этого (my-long-running-process &). Это запустит ваш скрипт как отдельный процесс в фоновом режиме.

1 голос
/ 05 августа 2011

Вы должны запустить процесс в фоновом режиме, но сначала вы должны включить управление заданиями.В противном случае вы не сможете убить или вывести процесс на передний план, если это необходимо.

Чтобы включить управление заданиями, выполните:

set -m

Чтобы запустить задачу в фоновом режиме, выполните:

task &

Чтобы управлять фоновой задачей, используйте синтаксис jobspec (%[n]).Например, чтобы убить последний запущенный процесс, выполните:

kill %

Обратите внимание, что включение управления заданиями требуется только в том случае, если вы на самом деле запускаете скрипт (как указано в вопросе).В интерактивном режиме управление заданиями уже включено по умолчанию.

Справочная страница для bash содержит гораздо больше информации в разделе УПРАВЛЕНИЕ ЗАДАНИЯМИ .

1 голос
/ 05 августа 2011

http://ubuntuforums.org/showthread.php?t=1657602

Похоже, все, что вам нужно сделать, это добавить & в конце строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...