[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Переключиться на фоновый процесс после возобновления сеанса.



On 2015.06.11 at 18:52:32 +0700, Ста Деюс wrote:

> Доброго времени суток.
> 
> 
> Можно ли переключиться на процесс, отправленный в фон, если закончить
> сеанс, а потом снова открыть сеанс? -- Речь идёт о текстовой консоли.

По идее, при окончании сеанса текстовой консоли (логауте) всем
процессам, запущенным из этого сеанса должен прилететь сигнал SIGHUP,
если только не принято специальных мер.

X-терминалы так обычно себя не ведут, и при корректном закрытии
терминала фоновые процессы оставляют - мало ли, может у этих процессов
свой GUI есть.

Специальные меры бывают

1. Предпринятые разработчиком программы. Это так называетмая
"демонизация". Можно  написать программу так, что она не просто уйдет в
фон, а отцепится от управляющего терминала, выпишет себя из сессии,
и станет процессом-демоном.
Прицепить обратно её уже никак. 

Из пользовательских программ так умеет себя вести, например wget или
lftp.

2. Предпринятые юзером. Здесь у нас есть два варианта:
2.1 старая добрая утилита nohup. Если мы запускаем фоновый процесс 
   nohup  команда параметры
  то он опять же программа отцепится от терминала, выпишется из сессии и
  весь ее ввод-вывод пойдет в nohup.out. Прицепить обратно уже никак.

2.2. screen. Это программа позволяющая в пределах одного терминала
(физической консоли или эмулятора терминала) создать много виртуальных
терминалов, отцепляться и подцепляться к ним. В общем, это видимо то,
что вы ищете. Одна проблема - надо сначала запустиь screen, а потом уже
в его окнах запускать программы, чтобы можно было отцепить сессию и
прицепить ее потом обратно. А если вы запустили фоновую задачу, а через
два часа обнаружили, что она еще работает, и будет работать еще три
часа, а вам отсюда бежать пора, то увы.

> 


Reply to: