Как я могу запустить сценарий оболочки и немедленно запустить его в фоновом режиме, однако сохраняйте возможность проверять его вывод в любое время, задав /tmp/output.txt

Было бы хорошо, если бы я мог опередить процесс позже.

PS Было бы очень здорово, если бы вы также могли показать мне, как «отправить» фоновый процесс на экран GNU, который может быть инициализирован или нет.

27
american-ninja-warrior 28 Май 2017 в 03:59

2 ответа

Лучший ответ

Чтобы «фон» процесс, когда вы запускаете его

Просто добавьте амперсанд (&) после команды.

Если программа пишет в стандартный поток, она все равно будет записывать данные на вашу консоль / терминал.

Чтобы вывести процесс на первый план, просто используйте команду fg.

(Вы можете увидеть список заданий в фоновом режиме с помощью jobs.)

Например:

sh -c 'sleep 3 && echo I just woke up' & jobs

Чтобы создать фон для текущего запущенного процесса

Если вы уже запустили процесс на переднем плане, но хотите переместить его на задний план, вы можете сделать следующее:

  1. Нажмите Ctrl + z, чтобы перевести текущий процесс в спящий режим и вернуться в свою оболочку. (Этот процесс будет приостановлен, пока вы не отправите ему другой сигнал.)
  2. Запустите команду bg, чтобы возобновить процесс, но запустите его в фоновом режиме, а не на переднем плане.
49
Jon Wolski 28 Май 2017 в 01:24

Другой способ - использовать команду nohup с & в конце строки.

Что-то вроде этого

nohup whatevercommandyouwant whateverparameters &

Это запустит его в фоновом режиме и отправит вывод в файл nohup.log.

9
Stephen Rauch 17 Окт 2018 в 15:19