Асинхронные команды оболочки

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

Я пытаюсь использовать сценарий оболочки для запуска команды. Я не забочусь о if/when/how/why, который это заканчивает. Я хочу, чтобы процесс запустился и работал, но я хочу быть в состоянии возвратиться к моей оболочке сразу...

Надежда это достаточно ясно, я, вероятно, просто пропускаю что-то невероятно глупое

84
задан LorenVS 2 March 2010 в 15:05
поделиться

3 ответа

Вы можете просто запустить сценарий в фоновом режиме:

$ myscript &

Обратите внимание, что это отличается от помещения & в ваш скрипт, который, вероятно, не будет делать то, что вы хотите.

101
ответ дан 5 November 2019 в 06:15
поделиться
nohup cmd

не зависает при закрытии терминала. вывод по умолчанию идет на nohup.out

. Вы можете объединить это с фоновым режимом,

nohup cmd &

и избавиться от вывода,

nohup cmd > /dev/null 2>&1 &

вы также можете отключить команду. введите cmd , Ctrl-Z , bg , disown

34
ответ дан 5 November 2019 в 06:15
поделиться

В качестве альтернативы, после того, как вы запустили программу, вы можете нажать Ctrl-Z, что остановит вашу программу, а затем набрать

bg

, что поместит ваш последняя остановленная программа в фоновом режиме. (Полезно, если вы начали что-то без '&' и по-прежнему хотите, чтобы это было в фоновом режиме без перезапуска)

25
ответ дан 5 November 2019 в 06:15
поделиться