Как отправить процесс на задний план и на передний план?

17

Если я это сделаю ping google.com &, процесс уходит на задний план и продолжает показывать мне детали пинга. Я все еще могу использовать терминал с другими командами, но вывод команды ping и вывод других команд перепутаны (что не является проблемой), но я не могу завершить этот процесс ping вообще.

Для этого я хочу, чтобы вывести его на передний план, а затем нажмите Ctrl + C или что-то. Я пытался использовать fg, но это тоже не сработало. Итак, как мне заставить ping google.com &вернуться на передний план после того, как я нажал клавишу возврата в конце моей команды ping?

posixKing
источник
2
Кажется, что проблема, которую вы действительно хотите решить, - это убить фоновую работу; нет необходимости выводить его на передний план. Используйте, jobsчтобы найти идентификатор задания jidфонового процесса, а затем просто kill %jidубить его.
садовод

Ответы:

30

fgявляется правильной командой для приоритетного задания, но если запущено более одного задания, вы должны указать номер задания. Если вы печатаете только fg, последнее заданное задание (считается оболочкой текущее задание) будет выведено на передний план.

Получить текущие вакансии:

$ jobs
[1]+     ping google.com &

Передний план задания, указав номер:

fg %1

Команда может быть разбита по выходным данным запущенного процесса, но она все равно будет работать, вы можете игнорировать прерывание.

Затем нажмите ctrl+, cчтобы прервать и остановить процесс

Как уже упоминалось в комментарии, вы также можете отправлять сигналы по номеру работы, например kill %1

Для полноты, если вы не использовали во &время вызова процесса, вы можете отправить его в фоновый режим, сначала заморозив с помощью ctrl+, zа затем набравbg

Занна
источник
1
Просто fgбез аргументов, кажется, тоже работает, по крайней мере, когда есть только одна фоновая работа.
Седрик Райхенбах,
1
@CedricReichenbach отредактировано!
Занна
-2

Чтобы ответить на заданный вопрос, а именно: Как отправить вывод процесса на задний план и на передний план? , teeкоманда сделает:

В вычислениях tee - это команда в интерпретаторах (оболочках) командной строки, использующих стандартные потоки, которые считывают стандартный ввод и записывают его как в стандартный вывод, так и в один или несколько файлов, эффективно дублируя его ввод. https://en.wikipedia.org/wiki/Tee_(command)

erqe4tjwtjwertjwrtj
источник
5
Вы недоразумение что - то здесь ...
Byte Commander