@Sigarev20Dmitry

Как отправить процесс в фон?

Здравствуйте.
У меня не получается запускать процессы в фоне на 4-х разный компьютерах: 2 с Ubuntu server, Ubuntu lts 22.*, Ubuntu 23.*.
На Ubuntu server после ввода команды bg <номер процесса> ничего не происходит, просто возвращается строка на ввод. Если после этого ввести jobs, то заветная надпись Running. так и не появляется, вместо нее все еще статус Stopped.
На Ubuntu lts 22.* и Ubuntu 23.* все еще менее понятно. При вводе команды bg <номер процесса> на экране начинает отображается вывод этого процесса, при этом окно терминала наглухо зависает и я ничего не могу сделать, даже остановить процесс (ctr+C)

В чем проблема? Так как это происходит на 4-х разных компьютерах, делаю вывод, то это я делаю что то не так.
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Здравствуйте.
На Ubuntu server после ввода команды bg <номер процесса> ничего не происходит, просто возвращается строка на ввод.

Так и должна просто возвращаться строка на ввод. Во первых если процесс уже был запущен и работал в фоне, то вы ничего не делаете. Если он был приостановлен, он просто должен перейти в running.
Но для того, чтобы вам помочь, было бы неплохо чтобы вы привели лог своей консоли, как вы выполняете jobs, как вы указываете номер процесса. То есть выполнить jobs, bg номер, jobs

При вводе команды bg <номер процесса> на экране начинает отображается вывод этого процесса, при этом окно терминала наглухо зависает и я ничего не могу сделать, даже остановить процесс (ctr+C)

Как докажете что окно терминала именно зависает?
для начала, если вы запустили процесс в фоновом режиме, то Ctrl+C естественно не может его остановить. Он же в фоне выполняется. Скорее всего вы не понимаете, что вам доступен терминал, в котором вы можете вводить другие команды.
Фоновый процесс просто может писать текст в терминал.
Напишите вслепую clear, например, проверьте что экран очистился ненадолго.
И запускать процессы в фон, которые шлют много текста в терминал - в общем случае бессмысленно
Ответ написан
Комментировать
Смотря что за процесс, если запускаете из терминала, и нужно его держать открытым то с помощью команды nohup что бы запустить в фоновом режиме

Пример

nohup команда &


И можно добавить --disable-log что бы отключить лог и не писать все ответы от этого процесса в файл nohup.out

И что бы не держать терминал открытым.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы