#bash #shell
#bash #оболочка
Вопрос:
Я знаю, что выполнение команды и добавление amp;
в конец создадут задание и заставят команду выполняться в фоновом режиме.
Теперь я хочу создать задание в оболочке bash. Я пытался
#!/bin/bash
my-job amp;
# some other tasks
Затем я выполнил jobs
, но не получил никаких результатов. Тем не менее, ps aux
шоу my-job
выполняется в фоновом режиме.
Я хочу создать задание внутри скрипта, потому что в некоторых случаях я хочу вывести задание на передний план.
Ответ №1:
jobs
обычно это концепция интерактивной оболочки, поскольку обычно задействован управляющий терминал.
Сценарий оболочки выполняется в неинтерактивном сеансе оболочки без входа в систему, поэтому по умолчанию управление заданием отсутствует.
Вы можете принудительно управлять заданием внутри скрипта, установив:
set -m
внутри скрипта.
От help set
:
-m Job control is enabled.