Иногда я запускаю несколько процессов, используя другой скрипт (в моем случае Ruby). Я вызываю этот скрипт из терминала, на котором запущен bash. Я хотел бы запустить эти процессы в сценарии в фоновом режиме (с помощью &). К сожалению, эти процессы не отображаются при вызове jobs из терминала, на котором выполняется скрипт. Я думаю, потому что они запускаются в субоболочке. Это затрудняет управление ими.

Есть ли способ, чтобы эти процессы были доступны с помощью заданий в родительской оболочке?

1 ответ1

1

Единственный способ - запускать сами задания в родительской оболочке.

На данный момент у вас есть:

shell -> ruby -> shell -> команда

Если бы вы могли иметь команды в сценарии оболочки, а не ruby, вы могли бы выполнить этот сценарий оболочки в текущей оболочке с помощью

$ source myfile.sh

или короткая рука:

$ . myfile.sh

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

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